python for循环不能在函数体内工作



这是我的代码-

def read_data():
filename=(r"School_ProjectDatavotes.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()

这里的数据没有迭代,即for循环在函数体内工作不好,无法打印文件中的所有值,只打印了第一行Please help me out with this error

您不能像这样遍历csv文件。您将需要像csvpandas这样的库。参见示例:

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

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

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

read_data()

因为您在那里使用了return,它在第一次迭代后结束了函数,从而也结束了循环。

此外,为什么需要对csvfile进行迭代?.readlines()已经为您完成了这项工作,并返回了文件中所有行的列表。

最后,正如@GrowingWings所提到的,避免手动处理CSV文件;请改用csvpandas

相关内容

  • 没有找到相关文章

最新更新