如何告诉 for 循环从一开始就读取文件?



在读取以下行中的 CSV 文件时:

csv_file = open(sys.argv[1], "r")  # reading the csv file into memory
csv_reader = csv.DictReader(csv_file)

当我尝试在使用 for 循环时制作csv_reader的副本时,它可以工作,但对该复制版本的任何更改都会影响 csv_reader 变量,加上

for line in csv_reader:
copy = line 
break
for line in csv_reader:
print(line)

第二个 for 循环将打印除 thencsv_file 中第一行之外的所有内容,为什么?

您可以在 for 循环之间使用csv_file.seek(0)

csv_file = open(sys.argv[1], "r")
csv_reader = csv.DictReader(csv_file)
for line in csv_reader:
copy = line 
break
csv_file.seek(0)
for line in csv_reader:
print(line)
# Outputs full csv file

最新更新