当输出保存在变量中时,为什么.read()命令会执行不同的操作

时间:2017-03-06 14:54:01

标签: python python-3.x terminal

以下是我在终端中所做的事情:

>>> file1 = open('file1.txt', 'r')
>>> file1.read()
    'Content 1'
>>> new_file1 = file1.read()
>>> print(new_file1)

为什么当我直接在file1上使用.read()命令时,我得到文件的内容,但是当我尝试输出保存到变量时,我得到一个空字符串?

1 个答案:

答案 0 :(得分:1)

file是迭代器,读取文件会耗尽迭代器。换句话说,第一个read()使用它。

要再次读取同一文件,您可以关闭然后重新打开文件,或将文件的内部指针移回开头:file1.seek(0)

NB file这种方式很特别;大多数迭代器都无法重置。