我正在尝试使文本在ipython的qtconsole中显示为粗体,颜色或斜体。

我找到了此链接:How do I print bold text in Python?,并使用了第一个和第二个答案,但是在qtconsole中,只有下划线选项有效。

我尝试:
print '\033[1m' + 'Hello World!' + '\033[0m'
得到:
Hello World!
(无黑体字)。颜色也不起作用。但:
print '\033[4m' + 'Hello World!' + '\033[0m'
得到:
Hello World!
带下划线。

这仅在qtconsole中。仅在终端中运行ipython,它可以通过这种方式来做粗体和颜色。

在该链接中还建议了其他选项,从中链接了另一个Print in terminal with colors using Python?,但它们似乎都比我想做的事情要复杂,并且使用了更多精心设计的软件包,这仅仅是让qtconsole像这样显示普通的终端就可以。

有人知道发生了什么吗?这仅仅是对qtconsole的限制吗?

最佳答案

在Jupyter Notebooks中,解决此问题的一种干净方法是使用markdown:

from IPython.display import Markdown, display
def printmd(string):
    display(Markdown(string))

然后执行以下操作:
printmd("**bold text**")

当然,这对于粗体,斜体等非常有用,但markdown本身并不实现颜色。但是,您可以将HTML放在markdown中,并获得以下信息:
printmd("<span style='color:red'>Red text</span>")

您也可以将其包装在printmd函数中:
def printmd(string, color=None):
    colorstr = "<span style='color:{}'>{}</span>".format(color, string)
    display(Markdown(colorstr))

然后做一些很酷的事情
printmd("**bold and blue**", color="blue")

对于颜色,您也可以使用十六进制表示法(例如,绿色的color = "#00FF00")

为了澄清,尽管我们使用markdown,但这是一个代码单元:您可以执行以下操作:
for c in ('green', 'blue', 'red', 'yellow'):
    printmd("Writing in {}".format(c), color=c)

当然,这种方法的缺点是依赖于Jupyter笔记本电脑。

关于python - 在ipython qtconsole中打印粗体,彩色等文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23271575/

10-12 18:04