如何在Python中将文本颜色保存到文本文件?

0 投票
1 回答
1442 浏览
提问于 2025-04-18 02:52

我在想,有没有办法在把标准输出(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

那么这个文件里也会包含这些特殊字符。

总结一下:这些内容已经被保存下来了。实际上,修改颜色的指令并不存在。程序只是写了一串二进制数据,而一些终端显示程序会把这些数据解读为改变颜色的命令。

撰写回答