我是一名 Python 初学者,正在一个较小的单独文件中对我的一个更大的项目进行故障排除。我更大的项目的问题是我无法让两个 for 循环连续工作。我有一个包含两行的 txt 文件代码很简单:file=open("test.txt","r")for line in file: print("x") passprint("hi") for line in file: print("x")两个 for 循环是相同的 bar pass。print("hi")存在作为检查第一个 for 循环是否被打破的一种手段(它是)此代码输出:xxxhi第一个 for 循环被打破, print 语句在它之后工作,但之后的 for 循环没有?我本来希望它输出:xxxhixxx我怎样才能解决这个问题?
1 回答
忽然笑
TA贡献1806条经验 获得超5个赞
问题是,在您的第一个循环中,您将EOF在循环结束时到达 (end-of-file),因此任何后续循环都不会读取任何内容,您可以使用它readlines来获取可以循环的行列表随心所欲:
with open("test.txt", "r") as f: # use `with` to automatically close the file after reading
lines = f.readlines()
for line in lines:
print("x")
#pass `unnecessary`
print("hi")
for line in lines:
print("x")
或者(对于大文件),您可以使用seek让阅读器回到文件的开头:
file = open("test.txt", "r")
for line in file:
print("x")
print("hi")
file.seek(0)
for line in file:
print("x")
file.close()
添加回答
举报
0/150
提交
取消