后台:我有一个大文件,我想从中读取前几个值。我真的不想读取整个文件,因为我没有进一步使用它,因此它不使用不必要的内存并且执行速度更快(因为它不需要读取这个巨大的文件)。
来自我正在使用的documentation:
的test.txt
Greetings World :)
test.py:
with open('test.txt', buffering=3) as file:
a = file.read()
print(a)
它不仅部分读取了我的文件。
有没有办法只读取文件的一部分?
答案 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
。
要读取文件的内容,请调用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用于提供文档。