python - 将字符串中的转义字符(如“\ n” - 两个字符)转换为ASCII字符(换行符)

python - 将字符串中的转义字符(如“\ n” - 两个字符)转换为ASCII字符(换行符),第1张

我的程序从命令行参数中获取了一个字符串,其中包含许多转义字符。

./myprog.py "\x41\x42\n"

当我打印“sys.argv [1]”时。 我上了屏幕:

\x41\x42\n

是否有一种简单的方法可以打印程序:

AB[newline]

最佳答案:

2 个答案:

答案 0 :(得分:2)

传递给您的程序的字符串是'\x41\x42\n'

我认为没有一种简单的方法可以将其恢复为'AB\n'

您必须将字符串拆分为'\',并单独处理每个元素。

如果您的字符串始终采用'\x..\x..\x..\n'格式,那么您可以执行此操作:

print ''.join([chr(int('0' k,16)) for k in sys.argv[1].split('\')[1:-1]])

答案 1 :(得分:1)

尝试按以下方式传递参数:

./myprog.py $'\x41\x42\n'

允许$'...'表示法与\x00一起使用 - 类似于从十六进制表示法构造任意字节序列的转义序列。

解决此问题的另一种方法是执行@ Barak建议here - 正在转换hex个字符的内容。 这取决于你觉得容易找到的东西。

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复