Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正则表达式中的Python和二进制数据_Python - Fatal编程技术网

正则表达式中的Python和二进制数据

正则表达式中的Python和二进制数据,python,Python,我正在寻找一种在python中将不可打印字符放入字符串的方法 小背景信息:我正在使用paramiko通过SSH使用windows命令提示符。但是,paramiko不“解析”/“处理”ANSI终端仿真转义序列。所以它们出现在我的输出中,这是我不想要的。所以我需要去掉这些逃逸序列 但是,这些字符串/转义序列按以下方式编码:Esc[Line;ColumnH 正如您所猜测的。我无法在字符串中获取esc字节值。它也会打印,比如0x1b或27。因此没有用 有人知道如何解决这个问题吗?提前谢谢。您可以使用正则

我正在寻找一种在python中将不可打印字符放入字符串的方法

小背景信息:我正在使用paramiko通过SSH使用windows命令提示符。但是,paramiko不“解析”/“处理”ANSI终端仿真转义序列。所以它们出现在我的输出中,这是我不想要的。所以我需要去掉这些逃逸序列

但是,这些字符串/转义序列按以下方式编码:
Esc[Line;ColumnH

正如您所猜测的。我无法在字符串中获取esc字节值。它也会打印,比如
0x1b
27
。因此没有用


有人知道如何解决这个问题吗?提前谢谢。

您可以使用正则表达式抑制这些转义序列:

str_with_ainsi_esc = '\x1b[10;10HSalut'
print re.sub('\x1b\[\d+;\d+H','',str_with_ainsi_esc)

转义非ascii字符(通过替换为文字)、执行正则表达式魔术、取消转义?对于许多应用程序,设置环境变量TERM=dumb将阻止它们发送ANSI转义序列。@PauloScardine遗憾的是,这似乎不起作用。啊,这就是如何将字节字符放入字符串中的方法。谢谢。明天我们将进一步了解。(现在是回家时间)我确实将
'\x1b\[\d+;\d+H'
更改为
'\x1b\[\d*;\d*H'
,因为根据VT100规范,列和行值都是可选的。