我正在尝试打印一个大字符串,它的大小为100 Mb,需要一次性完成。看起来它被截断了。
答案 0 :(得分:3)
虽然这不能解答您的问题,但移动数据print
可能是一个坏主意:print
意味着用于简短的信息打印输出。它提供了移动大数据时通常不需要的功能,例如格式化和附加EOL。
而是在write
文件句柄(或其他一些文件句柄)上使用更低级别的内容,例如sys.stdout
;这样可以轻松写入文件而不是stdout
out=sys.stdout
out.write(largedata)
您还可能希望在输出之前重新排列数据:
# this is just pseudocode:
for chunk in largedata:
out.write(chunk)
.write
不附加EOL字符,因此多个块的输出几乎无法与输出所有内容完全无法区分。
但你的好处是不会超越任何缓冲区。
答案 1 :(得分:1)
关于您可以使用stdout
函数在print
中打印的字符串的最大大小,因为您必须将文本作为python对象传递给print
函数,因为变量的最大大小取决于您的平台,32位平台上的 2 31 - 1 和 2 63 - 在64位平台上1 。
此外,您可以使用sys.maxsize
来获取变量的最大大小:
了sys.maxsize
给出最大值的整数可以是Py_ssize_t类型的变量。在32位平台上通常为2 ** 31 - 1,在64位平台上为2 ** 63 - 1。