在我们打开文件时,python中是否有任何方法可以将颜色输出打印到文件并以彩色读取输出?
我正在使用linux oS。
我正在使用en脚本将输出文件转换为html并在浏览器中读取。
以下是代码:
import sys
import time
class bcolors:
HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
from prettytable import PrettyTable
a = "ok"
b = "Failed"
t = PrettyTable([bcolors.WARNING + 'Input' + bcolors.WARNING, bcolors.WARNING + 'status' + bcolors.WARNING])
if a == "ok":
t.add_row([bcolors.OKGREEN + 'FAN' + bcolors.ENDC, bcolors.FAIL + a + bcolors.ENDC])
else:
t.add_row(['FAN', b])
storage_file = open("Storage-output.txt", 'w')
sys.stdout = storage_file
print t
storage_file.close()
它生成文本文件Storage_file。
我将使用enscript转换html的Storage_file。以下是命令。
enscript --language=html -o file_out_html.html Storage-output.txt
现在我在网络浏览器中的输出显示如下:
Storage-output.txt
+-------+--------+
| [93mInput[93m | [93mstatus[93m |
+-------+--------+
| [92mFAN[0m | [91mok[0m |
+-------+--------+
要求:
任何解决方案对我都没问题
答案 0 :(得分:0)
班级bcolors
中的字符串是ANSI颜色代码。如果您有一个适当配置的终端仿真器,当您使用print
语句将此输出发送到屏幕时,您将看到颜色。
但HTML有一种完全不同的指定颜色的方式:它看起来像这样
<p style="color:red;">This is a paragraph.</p>
浏览器不了解ANSI颜色代码,因此您的enscript
命令需要知道如何将它们转换为HTML。但Enscript也不了解ANSI颜色代码。如果你想为Enscript指定颜色,你需要像
~color{red green blue}
其中red
,green
和blue
以0到1之间的十进制数给出。
当你运行Enscript时,你需要定义~
作为转义字符:add
-e~
到您的命令行,以便识别colour
指令。如果您的数据中有~
,请选择其他字符。