csv python for循环在函数体内不起作用

0yg35tkg  于 2022-12-06  发布在  Python
关注(0)|答案(3)|浏览(115)

这是我的密码-

def read_data():
    filename=(r"\School_Project\Data\votes.csv")
    with open(filename) as csvfile:
        for data in csvfile: #here data 
            csvfile.seek(0)
            for x in csvfile.readlines():
                return print(x)

read_data()

此处data未迭代,即for循环在函数体中运行不正常,无法打印文件中的所有值。仅打印第一行Please help me out with this error

fcipmucu

fcipmucu1#

您不能像这样遍历csv文件。您将需要一个类似csvpanda的库。请参见示例:

import csv

filename = (r"\School_Project\Data\votes.csv")

with open(filename, 'r') as csvfile:
    datareader = csv.reader(csvfile)
    for row in datareader:
        print(row)
wwwo4jvm

wwwo4jvm2#

因为使用了return print(x),所以应该返回文件的每一行。例如:

def read_data():
    filename = (r"\School_Project\Data\votes.csv")
    with open(filename) as csvfile:
        res = "\n".join(csvfile.readlines())
        print(res)

read_data()
ymdaylpp

ymdaylpp3#

因为你在这里使用了return,它在第一次迭代后结束了函数,也结束了循环。
另外,为什么需要迭代csvfile.readlines()已经为您做了这件事,并返回了文件中所有行的列表。
最后,正如@GrowingWings提到的,避免手动处理CSV文件;请改用csvpandas

相关问题