我有两个从文件中读取的for循环。它们都完全相同,除了它们内部的if
语句。
infile = open("australianFatalities.csv", "r")
for line in infile:
words = line.split(",")
crash_id = words[0]
crash_state = words[1]
if crash_state == "NSW":
print(crash_id)
for line in infile:
words = line.split(",")
crash_id = words[0]
crash_state = words[1]
if crash_state == "NSW":
print(crash_state)
问题是第一个循环运行,但第二个循环不运行。我知道这是因为会打印crash_id
,但crash_state
不会。如果我切换crash_id
和crash_state
,状态将打印但ID不会。
此代码已与我的主项目隔离,但显示相同的问题。
为什么循环不会第二次运行?它与读取文件有关吗?
我是Python的新手,所以答案需要保持一定的基础。
答案 0 :(得分:0)
在python中迭代文件对象时,每次迭代后当前位置都会发生变化。
因此,当您尝试再次循环文件对象时,光标位于文件末尾。
您可以通过再次打开文件或更好地解决此问题:在第二个循环之前调用fd.seek(0)
。