将变量更改为与打印输出相同

时间:2018-03-27 00:23:38

标签: python python-2.7

x
Out[18]: '\x1b[24m\x1b[1m\x1b[2;1HPressure Index      \r\n'

print x
Pressure Index      

str(x)
Out[20]: '\x1b[24m\x1b[1m\x1b[2;1HPressure Index      \r\n'

x.__str__()
Out[21]: '\x1b[24m\x1b[1m\x1b[2;1HPressure Index      \r\n'

我不明白print语句如何清除变量中的所有垃圾字符。我已经有一个解决方法,在" 1H"之后拆分文本。并剥离新行字符,但我很好奇我如何能够更严格地做到这一点并获得清晰的print输出成为我的变量。 print语句用于清理文本的内容是什么?

在做了一些进一步阅读之后,我尝试将__str__作为课程的一部分来实现,但是我在实现这个方面遇到了麻烦。以下是我的第一次尝试

 class readable(str):
    def __str__(self):
        return str(self)

但我还是得到了

y=readable(x)

y
Out[50]: '\x1b[24m\x1b[1m\x1b[2;1HPressure Index      \r\n'

编辑: 我想要的输出是print语句输出。我试图去除所有额外字符的变量,这样它就只是一个字符串读数'压力指数'

1 个答案:

答案 0 :(得分:2)

\x1b Escape 字符(也可以在字符串中写为\e),ESC [ <number> m是用于更改各种文本的转义序列模式(粗体,下划线,颜色等)。 print按原样打印控制字符,而不是尝试将它们显示为转义序列,因此您不会在输出中看到它们,它们会对终端产生所需的效果。您可以在ANSI Escape Sequences上的维基百科页面中阅读有关这些转义序列的信息。

如果要将变量设置为使用转义序列显示的表示,请使用repr()函数:

y = repr(x)
print y