我想将一个字符串传递给我的python脚本,该脚本包含转义序列,例如:\x00或\t,和空格.
但是当我传入我的字符串时:
some string\x00 more \tstring
Run Code Online (Sandbox Code Playgroud)
python将我的字符串视为原始字符串,当我从脚本内部打印该字符串时,它按字面打印字符串,并不将其\视为转义序列.
即它打印完全上面的字符串.
更新:(刚刚)
我正在使用python 2.7.5重现,创建一个脚本,让我们调用它myscript.py:
import sys
print(sys.argv[1])
Run Code Online (Sandbox Code Playgroud)
现在保存它并从windows命令提示符中调用它:
c:\Python27\python.exe myscript.py "abcd \x00 abcd"
Run Code Online (Sandbox Code Playgroud)
我得到的结果是:
> 'abcd \x00 abcd'
Run Code Online (Sandbox Code Playgroud)
PS在我的实际脚本中,我使用的是选项解析器,但两者都有相同的效果.也许我可以为选项解析器设置一个参数来处理转义序列?
myscript.py包含:
import sys
print(sys.argv[1].decode('string-escape'))
Run Code Online (Sandbox Code Playgroud)
结果abcd abcd