【发布时间】:2015-03-29 05:20:42
【问题描述】:
我有一些对象需要打印到终端(用于调试)。普通的print 函数几乎是完美的,只是有些对象太大了,所以print 会产生数百万行的输出。我想创建一个函数来做print 所做的事情,除了输出在预定义数量的字符后被截断,其余的替换为...。
有什么好的方法吗?
请注意,性能是一个问题,所以理想情况下,我不希望保存一个千兆字节大小的字符串,然后从中取出前几个字符;同样,pprint 也有点问题,因为它对字典中的键进行排序(并且有数百万个键需要一段时间)。
例子:
obj = [ [1, 2, 3], list(range(1000000)) ]
my_print(obj, 20)
# should output:
# [[1, 2, 3], [0, 1, 2...
Python 3,如果重要的话。
【问题讨论】:
-
如果您有嵌套的字典,可能
pprint.pprint和参数depth设置会有所帮助? -
@myaut 这不是我想要的,但它真的很有帮助!谢谢!
-
你可以用
reprlib定义你自己的表示。 -
@m0nhawk 我想就是这样。你能把它从评论移到答案吗?
标签: python python-3.x