代码非常简单:
import sys
for arg in sys.argv:
print(arg)
当我使用以下方式运行时:
myProgram.py \\
打印:
C:\myProgram.py
\\
由于“\”是特殊的,因此引用了额外的“\”,因此输入的“\\”变为“\\\\”,并且当它打印时它再次成为“\\”。我怎么能阻止这个,或删除python添加的额外“\”?所以当输入的参数是“\\”时,它会打印“\”;当输入参数为“\ t”时,它会打印一个[tab]; “\ n”打印一个新行;等等?
我的搜索引导我尝试“原始字符串”,因此我将代码更改为
import sys
for arg in sys.argv:
arg.replace(r'\\',r'\')
print(arg)
但它引发错误说
SyntaxError: EOL while scanning string literal
似乎“原始字符串”在这里不起作用?
更新:屏幕略有变化
答案 0 :(得分:2)
您希望将参数计算为字符串,因此您可以使用eval
import sys
for arg in sys.argv:
print(eval('"' + arg.replace('"', '\\"') + '"'))
警告:您不应该在制作中使用此方法,因为Eval really is dangerous
答案 1 :(得分:0)
我认为this FAQ
中解释了这个问题