python中的print函数是否有可以打印的字符串长度限制?

时间:2015-07-14 07:15:56

标签: python printing

我正在尝试打印一个大字符串,它的大小为100 Mb,需要一次性完成。看起来它被截断了。

2 个答案:

答案 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。