如何从python中的字符串中删除ANSI转义序列

如何从python中的字符串中删除ANSI转义序列

这是我的字符串:

'ls\r\n\x1b[00m\x1b[01;31mexamplefile.zip\x1b[00m\r\n\x1b[01;31m'

我正在使用代码从SSH命令检索输出,我希望我的字符串只包含'examplefile.zip'

我可以用什么来删除额外的转义序列?


蝴蝶不菲
浏览 1597回答 3
3回答

函数式编程

功能基于的Martijn Pieters的♦的回答与杰夫的正则表达式。def escape_ansi(line):     ansi_escape = re.compile(r'(?:\x1B[@-_]|[\x80-\x9F])[0-?]*[ -/]*[@-~]')     return ansi_escape.sub('', line)测试def test_remove_ansi_escape_sequence(self):     line = '\t\u001b[0;35mBlabla\u001b[0m                                  \u001b[0;36m172.18.0.2\u001b[0m'     escaped_line = escape_ansi(line)     self.assertEqual(escaped_line, '\tBlabla                                  172.18.0.2')测试如果你想自己运行它,使用python3(更好的unicode支持,blablabla)。以下是测试文件的格式:import unittestimport redef escape_ansi(line):     …class TestStringMethods(unittest.TestCase):     def test_remove_ansi_escape_sequence(self):     …if __name__ == '__main__':     unittest.main()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python