如何使用Python read()一次读取大文件 问题

如何使用Python read()一次读取大文件 问题,python,python-3.x,Python,Python 3.x,我有一个270000行的txt文件(15M),试图用python导入,但它总是显示part或it(大约100000行) 如果使用“最大尺寸”参数,它可以显示前部 raw_text_data = f.read(1000) 还尝试了以二进制模式(“rb”)读取,但不适用于我 问题 我不想把txt文件一块一块地读,有没有办法一次把它读入内存?我猜你看到的是输出缓冲的结果。作为黑客,您可以尝试使用打印(原始文本数据,flush=True)绕过输出缓冲 注意不建议使用print()在STDOUT上显示大

我有一个270000行的txt文件(15M),试图用python导入,但它总是显示part或it(大约100000行)

如果使用“最大尺寸”参数,它可以显示前部

raw_text_data = f.read(1000)
还尝试了以二进制模式(“rb”)读取,但不适用于我

问题
我不想把txt文件一块一块地读,有没有办法一次把它读入内存?

我猜你看到的是输出缓冲的结果。作为黑客,您可以尝试使用
打印(原始文本数据,flush=True)
绕过输出缓冲


注意不建议使用
print()
在STDOUT上显示大量数据,因为它会遇到缓冲区溢出。当显示大块数据时,应首选较低级别的API,例如。

仅仅因为您没有看到打印的所有内容,并不意味着您没有完整地读取文件。确认
打印(len(raw\u text\u data))
是您所期望的。为什么要一次读取所有内容?你不能一行一行地看一下吗?我已经试过了,但仍然只是其中的一部分。还要注意的是,这是最好的努力。
read()
文档中的片段:“如果操作系统调用返回的字节数小于size字节,则返回的字节数可能小于size”。另一方面,
readall()
根据需要进行尽可能多的系统调用以读取所有内容。尝试了打印(原始文本数据,flush=True),但不起作用。请参阅问题下的注释。很可能瓶颈是操作系统限制了返回数据的大小。尝试
readall()
而不是
read()
。你是对的,这只是表面上的问题对于f.readlines()中的行:如果“PID:”行:打印(行),它将正确显示。
raw_text_data = f.read(1000)