我正在尝试打印一个大字符串,它的大小为100 Mb,需要一次完成.看起来它被截断了.
而这并不能回答你的问题,移动数据的加载print可能是一个坏主意:print是指短信息打印输出。它提供了移动大数据时通常不需要的功能,例如格式化和附加 EOL。
而是write在sys.stdout文件句柄(或其他文件句柄;这使您可以轻松写入文件而不是标准输出)上使用更底层的东西
out=sys.stdout
out.write(largedata)
Run Code Online (Sandbox Code Playgroud)
您可能还想在输出之前重新分块数据:
# this is just pseudocode:
for chunk in largedata:
out.write(chunk)
Run Code Online (Sandbox Code Playgroud)
.write不附加 EOL 字符,因此多个块的输出实际上与一次性输出所有块几乎没有区别。但是您的好处是不会超出任何缓冲区。