import csv
def csv_reader(file_obj):
reader = csv.reader(file_obj)
# for row in reader:
# print(" ".join(row))
reader_2 = csv.DictReader(file_obj, delimiter=",")
for row_2 in reader_2:
print(row_2)
csv_path = "data.csv"
with open(csv_path, "r") as f_obj:
csv_reader(f_obj)
我无法弄清楚为什么第二个“for循环”仅在第一个“for循环”被注释掉时才打印任何文本。
答案 0 :(得分:4)
CSV阅读器已经消耗了您的文件。
在再次使用之前调用file_obj.seek(0)
应该可以解决问题。
或者,打开(然后关闭)每个操作的文件也可以。
答案 1 :(得分:2)
这是因为您将同一文件处理程序传递给两个csv
读取器对象。迭代一次之后,您必须手动执行file_obj.seek(0)
才能使其按预期工作,否则它就像一个空文件。