Dav*_*ler 20 python ipython qtconsole jupyter-notebook jupyter-lab
我试图在ipython的qtconsole中将文本显示为粗体,或颜色,或者可能以斜体显示.
我找到了这个链接:如何在Python中打印粗体文本?,并使用了第一个和第二个答案,但在qtconsole中,只有下划线选项有效.
我尝试:
print '\033[1m' + 'Hello World!' + '\033[0m'
得到:
Hello World!
(没有粗体字).颜色也不起作用.但:
print '\033[4m' + 'Hello World!' + '\033[0m'
得到:
Hello World!
带下划线.
这只是在qtconsole中.在终端中运行ipython,它可以用这种方式做粗体和颜色.
该链接中还有其他选项,使用Python在终端中打印颜色?从它链接,但它们似乎都更复杂,并且使用更复杂的包,而不是我想要做的事情,这只是让qtconsole像普通终端一样显示.
有谁知道发生了什么?这仅仅是qtconsole的限制吗?
Cha*_*les 43
在Jupyter笔记本中,解决此问题的一种简洁方法是使用markdown:
from IPython.display import Markdown, display
def printmd(string):
display(Markdown(string))
Run Code Online (Sandbox Code Playgroud)
然后做一些像:
printmd("**bold text**")
Run Code Online (Sandbox Code Playgroud)
当然,这对于粗体,斜体等很有用,但降价本身并没有实现颜色.但是,您可以将html放在markdown中,并获得以下内容:
printmd("<span style='color:red'>Red text</span>")
Run Code Online (Sandbox Code Playgroud)
你也可以在printmd函数中包装它:
def printmd(string, color=None):
colorstr = "<span style='color:{}'>{}</span>".format(color, string)
display(Markdown(colorstr))
Run Code Online (Sandbox Code Playgroud)
然后做一些很酷的事情
printmd("**bold and blue**", color="blue")
Run Code Online (Sandbox Code Playgroud)
对于颜色,您也可以使用十六进制表示法(例如color = "#00FF00",绿色)
为了澄清,虽然我们使用markdown,但这是一个代码单元:你可以做以下事情:
for c in ('green', 'blue', 'red', 'yellow'):
printmd("Writing in {}".format(c), color=c)
Run Code Online (Sandbox Code Playgroud)
当然,这种方法的缺点是依赖于Jupyter笔记本.
Tho*_*s K 17
这些是ANSI转义,特殊的字符序列,终端处理切换字体样式.Qt控制台解释其中的一些,但不是所有严重终端都能解释的.此序列适用于以红色打印,例如:
print('\x1b[1;31m'+'Hello world'+'\x1b[0m')
Run Code Online (Sandbox Code Playgroud)
但是,如果您正在尝试编写跨平台应用程序,请注意Windows命令提示符不处理这些代码.一些更复杂的包可以处理它们以在Windows上产生类似的效果.
Qt控制台还可以显示简单的HTML,如下所示:
from IPython.display import HTML
HTML("<i>Italic text</i>")
Run Code Online (Sandbox Code Playgroud)
但是,当然,HTML不适用于常规终端.
我想完成之前的不完整答案。无需导入其他程序包即可完成更复杂有趣的事情。例如
print('\x1b[1;03;31;46m'+'Hello'+ '\x1b[0;4;30;42m' + ' world' '\x1b[0m')
Run Code Online (Sandbox Code Playgroud)
即:
打开用:
'\x1b[XX;YY;ZZm'
Run Code Online (Sandbox Code Playgroud)
结束于:
'\x1b[0m'
Run Code Online (Sandbox Code Playgroud)
其中XX,YY和ZZ是以下来源的数字:https: //en.wikipedia.org/wiki/ANSI_escape_code
应该注意的是,它很大程度上取决于您用作控制台的功能。
为我工作是以下各项的组合:
文字样式
文字颜色
明亮的文字颜色
背景颜色(即高光)
注意1; 42等也类似地工作
在Windows 7,Python 3.6,IPython控制台,Spyder 3.2.3中进行了测试,这对我有效
| 归档时间: |
|
| 查看次数: |
39121 次 |
| 最近记录: |