我在用 python 玩文件,所以我写了这个:
ifh=open('2.txt','r')
for line in ifh:
print(line,end="")
print("Done")
#ifh=open('2.txt','r')
for line in ifh:
print(line)
只有当我取消注释第二个文件句柄时,第二个循环才会打印文件。
这是为什么?
如果没有第二个,它不应该工作吗?
我在用 python 玩文件,所以我写了这个:
ifh=open('2.txt','r')
for line in ifh:
print(line,end="")
print("Done")
#ifh=open('2.txt','r')
for line in ifh:
print(line)
只有当我取消注释第二个文件句柄时,第二个循环才会打印文件。
这是为什么?
如果没有第二个,它不应该工作吗?
这是因为在第一个循环完成后,ifh
的当前位置在文件末尾。那时,没有更多数据要读取。
要再次读取数据,您需要使用ifh.seek(0)
移回文件的开头。
当您打印时,您位于文件的末尾Done
。你可以做一个ifh.seek(0)
重新开始。
做:ifh.seek(0)
在第二个循环之前。
这是因为您从文件中读取了所有行,并且seek
方法转到文件的第一个字节,并且您可以再次读取它。
您还可以在 for 循环之前创建一个闭环。
while True:
for line in ifh:
print(line,end=" ")