这是我的代码-
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文件。您将需要像csv或pandas这样的库。参见示例:
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文件;请改用csv
或pandas
。