如何打开包含 ANSI 颜色代码的 .txt 文件

How to open .txt file that contains ansi color codes

在我用 python 编写的 telnet 服务器中,如果我像这样向客户端套接字发送消息:

socket.send("3[32;1mHello!3[0m")

然后为客户正确着色。

但是当我使用一个文本文件时,例如 hello.txt 具有这样的内容:

3[32;1mHello!3[0m

然后这样发送:

f = io.open("files/hello.txt",'r')
message = f.read()
f.close()
socket.send(message)

然后文本没有着色并显示如下:

3[32;1mHello!3[0m

如何让它也变色?

从文件中读取时反斜杠会被转义,所以尝试:

socket.send(message.decode('string_escape'))

查看文档以进一步参考:https://docs.python.org/2/library/codecs.html#python-specific-encodings。不过这在 python3 中可能不起作用。

更新: 结果是 python3 你必须:

import codecs
socket.send(codecs.getdecoder('unicode_escape')(message)[0])