为什么我的csv数据通过将其作为另一个变量中的列表进行更改而被更改?

Dan*_*ord 3 python csv

如果我跑

input_file = csv.DictReader(open("input2.csv"))
for row in input_file:
      print (row)
Run Code Online (Sandbox Code Playgroud)

它按照我的预期工作并打印出csv文件.但是,如果我添加该行

input_file = csv.DictReader(open("input2.csv"))
data = list(input_file)
for row in input_file:
      print (row)
Run Code Online (Sandbox Code Playgroud)

它现在不打印任何东西.为什么将数据变量分配给input_file的列表,alter input_file?

Mik*_*ler 5

input_file是一个迭代器.你的电话list(input_file)耗尽了它.也就是说,它遍历所有行并将它们中的每一行都产生data,之后它就没有更多的行来产生.

尝试:

data = list(input_file)
for row in data:
      print (row)
Run Code Online (Sandbox Code Playgroud)

看到数据仍在那里.