IPython – 打印默认值为长变量打印头尾

IPython – 打印默认值为长变量打印头尾,第1张

概述(仅适用于I Python,无论是终端还是QTConsole,而不是Notebook)有没有办法让常规打印语句(是的,2.7)自动打印变量的头部和尾部(甚至只是头部)一些任意大小? 如果我在庞大的pandas数据帧上打印数据帧,pandas会自动打印头部.我希望它也可以在列表和numpy数组上工作,这样下次我不小心意外地打印出一个巨大的数组时,我不会得到100页的数字. (我确信我可以编写一个函数 (仅适用于I Python,无论是终端还是QTConsole,而不是Notebook)有没有办法让常规打印语句(是的,2.7)自动打印变量的头部和尾部(甚至只是头部)一些任意大小?

如果我在庞大的pandas数据帧上打印数据帧,pandas会自动打印头部.我希望它也可以在列表和numpy数组上工作,这样下次我不小心意外地打印出一个巨大的数组时,我不会得到100页的数字. (我确信我可以编写一个函数来执行此 *** 作,但我反复使用print,所以我想知道是否有办法控制IPython将显示多少 – 实际上,我宁愿改变控制台显示的内容而不是该计划正在做什么.)

解决方法 你不能用print语句做很多事情,但你可以对ipython的输出做些什么,考虑这些命令:

In [13]: x = range(3)In [14]: xOut[14]: [0,1,2]In [15]: print x[0,2]

首先,x将[14]赋值给表达式的值,然后显示Out [14].

你可以破解ipython以不同的方式显示它.据我所知,ipython内部使用pprint或其副本.简单的猴子修补pprint.pprint / pprint.pformat / pprint.PrettyPrinter虽然不起作用.你需要适当地破解ipython.

其次,print x直接进入Python的核心.在python 2.x中,你不能改变打印的作用.在python 3.x中,print()只是一个函数,你可以对其进行修补.

如果您打印的是您自己类的对象,请随意重新定义__str__和__repr__,如numpy所做的那样:

numpy.set_printoptions(threshold=2)numpy.array(range(10)).__str__()'[0 1 2 ...,7 8 9]'print numpy.array(range(10))[0 1 2 ...,7 8 9]

最后,ipython附带%page magic命令,您可以发出%page x,如果x的表示足够大,您将被删除到较少或类似的寻呼机,您可以一次查看一页的此文本表示.

附: ipython可以通过“traits”进行扩展,它对我来说仍然是魔法,但也许你可以使用traits解决第一种情况.

总结

以上是内存溢出为你收集整理的IPython – 打印默认值为长变量打印头尾全部内容,希望文章能够帮你解决IPython – 打印默认值为长变量打印头尾所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1197054.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存