只读取文件的第一个值

时间:2018-06-08 19:26:05

标签: python file io buffer

后台:我有一个大文件,我想从中读取前几个值。我真的不想读取整个文件,因为我没有进一步使用它,因此它不使用不必要的内存并且执行速度更快(因为它不需要读取这个巨大的文件)。

来自我正在使用的documentation

的test.txt

Greetings World :)

test.py:

with open('test.txt', buffering=3) as file:
    a = file.read()
print(a)

它不仅部分读取了我的文件。

有没有办法只读取文件的一部分?

2 个答案:

答案 0 :(得分:2)

通过此回答What is the use of buffering in python's built-in open() function?,您会发现buffering实际上并未读取范围。而是在a.read()中设置范围。所以:

with open('test.txt') as file:
    a = file.read(3) 
print(a)

按照您的预期返回Gre

请参阅documentation

  

要读取文件的内容,请调用f.read(size),它读取一些数据并将其作为字符串(在文本模式下)或字节对象(在二进制模式下)返回。 size是可选的数字参数。当省略大小或为负时,将读取并返回文件的全部内容;

如果您需要阅读文本文件中的值,那么您可以使用a.seek()查看seek() function?

答案 1 :(得分:2)

你有几个选择。

file.read()读取整个文件

file.read(size)读取大小的数据量(文本模式的字符,二进制模式的字节)

file.readlines() list(file) for line in file:都提供了阅读整个文件的方法

file.readline()一次返回一行(读取到换行符char(\n)或文件结束(EOF))

check here用于提供文档。