我是Python的初学者.我现在正在尝试弄清楚为什么第二个'for'循环在以下脚本中不起作用.我的意思是我只能得到第一个'for'循环的结果,但没有得到第二个循环的结果.我在下面复制并粘贴了我的脚本和数据csv.
如果你告诉我它为什么会这样,以及如何让第二个'for'循环工作也会很有帮助.
我的脚本:
import csv
file = "data.csv"
fh = open(file, 'rb')
read = csv.DictReader(fh)
for e in read:
print(e['a'])
for e in read:
print(e['b'])
Run Code Online (Sandbox Code Playgroud)
"data.csv":
a,b,c
tree,bough,trunk
animal,leg,trunk
fish,fin,body
Run Code Online (Sandbox Code Playgroud)
Bre*_*arn 31
csv reader是文件的迭代器.一旦你完成它,你会读到文件的末尾,所以没有更多要阅读.如果您需要再次浏览,可以查找文件的开头:
fh.seek(0)
Run Code Online (Sandbox Code Playgroud)
这会将文件重置为开头,以便您可以再次阅读.根据代码,可能还需要跳过字段名称标题:
next(fh)
Run Code Online (Sandbox Code Playgroud)
这对于您的代码是必要的,因为DictReader
第一次使用该行来确定字段名称,并且它不会再次这样做.它可能没有必要用于其他用途csv
.
如果文件不是太大而你需要对数据做几件事,你也可以把整个事情读成一个列表:
data = list(read)
Run Code Online (Sandbox Code Playgroud)
然后你就可以做你想做的事data
.
归档时间: |
|
查看次数: |
13804 次 |
最近记录: |