如何在Python中将文本颜色保存到文本文件?
我在想,有没有办法在把标准输出(stdout)打印到文本文件时,保存文本的颜色?比如说,下面这段代码:
import sys, time, shutil
sys.stdout = open('testytest.txt', 'w')
print "\033[0;32mSome text"
time.sleep(1)
#"Some text" should still be colored when reprinted
with open('testytest.txt', 'r') as testfile:
shutil.copyfileobj(testfile, sys.stdout)
所以,我再问一次,有没有办法在把标准输出保存到文本文件时,保留颜色?或者说,颜色已经被保存了吗?
1 个回答
1
其实你打印出来的内容里也包含了一些特殊字符。
所以如果你把打印到标准输出(stdout)的数据保存成文件,比如:
python somescript.py > somefile
那么这个文件里也会包含这些特殊字符。
总结一下:这些内容已经被保存下来了。实际上,修改颜色的指令并不存在。程序只是写了一串二进制数据,而一些终端显示程序会把这些数据解读为改变颜色的命令。