python - 为什么我需要创建另一个文件句柄才能再次读取同一文件?

标签 python file-io python-3.x

我正在用 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)移回到文件的开头。

关于python - 为什么我需要创建另一个文件句柄才能再次读取同一文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15653404/

相关文章:

python 3 : How to write a __iter__ method for derived class so that it extends on the behaviour of the base class' __iter__ method

python - 在 64 位 linux 上编译 32 位 python 模块(例如 numpy)

python - 我可以在 GAE 上使用 django.contrib.gis 吗?

python - 使用 pytest.main() 调用 pytest 时等效于 `-s`

python - 在 Python 的 matplotlib 中显示彩色二维数组

python - 使用python将对象输出到文件

python - 如何自动命名已抓取日期的每个后续 .CSV 文件?

file-io - 如何使用 Erlang OTP 模块修改文件中的一行

python - 索引在python中是什么意思?

python - 将带有虚线的日志读入 Pandas 数据框