2024-05-19 18:18:53 发布
网友
>>> f = open('/tmp/version.txt', 'r') >>> f <open file '/tmp/version.txt', mode 'r' at 0xb788e2e0> >>> f.readlines() ['2.3.4\n'] >>> f.readlines() [] >>>
我在Python的解释器中试过这个。为什么会这样?
你需要找到文件的开头。使用f.seek(0)返回开始:
f.seek(0)
>>> f = open('/tmp/version.txt', 'r') >>> f <open file '/tmp/version.txt', mode 'r' at 0xb788e2e0> >>> f.readlines() ['2.3.4\n'] >>> f.seek(0) >>> f.readlines() ['2.3.4\n'] >>>
Python会跟踪您在文件中的位置。当你到达终点时,它不会自动翻转过来。尝试f.seek(0)。
了解其他一些海报没有明确声明的重要部分是,文件是用一个光标读取的,该光标标记文件中的当前位置。因此,在第一次readlines()调用中,光标位于文件的开头,并一直进行到文件的结尾,因为返回了所有文件数据。在第二个readlines调用中,光标位于文件末尾,因此当它读取到文件末尾时,它根本不会移动,也不会返回任何数据。出于教育目的,您可以快速编写一些代码,打开一个文件,读取几个字节或行,然后调用read lines(),您将看到readlines()调用的输出从上次读取时停止的地方开始,一直持续到文件结束。
other提到的seek(0)调用将允许您重置文件开头的光标,以重新开始读取。
你需要找到文件的开头。使用
f.seek(0)
返回开始:Python会跟踪您在文件中的位置。当你到达终点时,它不会自动翻转过来。尝试
f.seek(0)
。了解其他一些海报没有明确声明的重要部分是,文件是用一个光标读取的,该光标标记文件中的当前位置。因此,在第一次readlines()调用中,光标位于文件的开头,并一直进行到文件的结尾,因为返回了所有文件数据。在第二个readlines调用中,光标位于文件末尾,因此当它读取到文件末尾时,它根本不会移动,也不会返回任何数据。出于教育目的,您可以快速编写一些代码,打开一个文件,读取几个字节或行,然后调用read lines(),您将看到readlines()调用的输出从上次读取时停止的地方开始,一直持续到文件结束。
other提到的seek(0)调用将允许您重置文件开头的光标,以重新开始读取。
相关问题 更多 >
编程相关推荐