python - 将字符串中的转义字符(如“\ n” - 两个字符)转换为ASCII字符(换行符)
我的程序从命令行参数中获取了一个字符串,其中包含许多转义字符。
./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
个字符的内容。
这取决于你觉得容易找到的东西。
本文经用户投稿或网站收集转载,如有侵权请联系本站。