我正在编写的python程序中的第一个模块是一本日志。
我已经习惯了使用打印函数,但是对于这个项目,如果我能区分一些文本输出和其他文本输出,那就太好了。例如,下面是程序的文本输出示例:
November_29_2017 Log_1 11/29/17-完成家庭作业Log_2 11/29/17-做了30分钟的卡迪奥
在这个示例中,November_29_2017是一个印刷的字典标签。我想要做的是把输出用不同的颜色,而不是标准的输出颜色,这样我就可以在我的日记中把它区分为标签或标题。
我不知道这项任务的确切规模,但如果我至少能得到一些研究资料,我会非常乐意和感激地完成这一任务。谢谢!
最近,我使用了ANSI转义代码来获取打印出的颜色,但是这个方法对我来说是有限的,因为它似乎只适用于字符串文本,而不是像list和字典这样的可打印对象。例如,下面是一个ANSI转义代码,用于为字符串文字着色:
打印‘\033’[1;34m蓝色似血\033[1;m‘]
输出将是字符串“蓝色如血”的蓝色。但是,如果我有一份清单:
L=“蓝色像血”,“橘子香蕉和红色猴子”
现在,将列表对象中的所有文本直接键入并传递到函数中是很费时的,更好的方法是使用list对象的索引(如果它是dict对象,则键)将列表对象传递到函数中。
我仍然是Python的新手,但我相信我知道的足够多了,简单地尝试在转义代码之间执行一个列表或不调用是行不通的(我试过了)。
我认为我需要的是print()方法,它可以自动对传递给函数的任何对象的文本着色,就像我说的,我是菜鸟,但我相信它看起来会是这样的:
print.add_color(L0)
比如:映射,“创建可调用的对象”,类等等,我还没有得到but...well,我真的不知道,但我觉得我已经接近了。请,仍在寻找信息,并感谢已提供投入的人。
发布于 2018-01-03 09:40:37
最近,我使用了ANSI转义代码来获取打印出的颜色,但是这个方法对我来说是有限的,因为它似乎只适用于字符串文本,而不是像list和字典这样的可打印对象。
您给出的注释表明您只是语法错误。尝试像这样的函数:
def blueprint(x):
print('\033[34m' + str(x) + '\033[0m')( print的括号在Python3中是必需的,在Python2中是可选的)。
将此应用于您的示例
L=["Blue like Blood","Orange bananas and red monkeys."]
blueprint(L)应该做到这一点,您实际上可以将所有内容传递到该函数中,该函数可以通过str转换为字符串。
注意,这将只在支持ANSI颜色代码的终端窗口中工作。在Linux或Mac下,这不应该是一个问题,在Windows 10环境中也是如此,对于早期的Windows版本,Colorama模块(感谢@tale852150提供链接)应该以独立于平台的方式解决这个问题。
至于你最初的问题:创建一个只有在ANSI终端打印时才能正确显示的日志是IMHO的一种非常有限的方法。如果您尝试将日志保存到文件中,然后在文本编辑器中打开它,则只会看到转义序列,而不会看到任何颜色。今天做这些事情的一个更标准的方法是使用HTML,将日志写到HTML文件中,并使用web浏览器显示它。这样,您可以使用标签标记标题,并使用级联样式表将其格式化为您喜欢的任何颜色。
发布于 2018-01-01 11:36:22
试试这个吧,彩霞。这可能是您正在寻找的,它可以在Windows上工作。
下面是一些示例代码:
from colorama import Fore, Back, Style
print(Fore.RED + 'some red text')
print(Back.GREEN + 'and with a green background')
print(Style.DIM + 'and in dim text')
print(Style.RESET_ALL)
print('back to normal now')下面是一个具有列表的示例:

若要在RHEL上安装colorama:
pip install colorama这里的例子也是如此:
https://softwareengineering.stackexchange.com/questions/362915
复制相似问题