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

时间:2018-02-05 21:11:20

标签: python telnet ansi

在我用python编写的telnet服务器中,如果我向客户端套接字发送一条消息,如下所示:

searchText

然后它为客户端正确着色。

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

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

并像这样发送:

\033[32;1mHello!\033[0m

然后文字没有着色,看起来像这样:

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

我如何让它也着色?

1 个答案:

答案 0 :(得分:2)

从文件中读取时,反斜杠将被转义,因此请尝试:

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

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

更新:结果是python3,你必须:

{{1}}