奇怪的是,当使用
的参数运行此程序时program.py "(lp0\nS'cat'\np1\naI5\na."
使用program.py:
import sys,pickle
print sys.argv[1]=="(lp0\nS'cat'\np1\naI5\na."
打印错误...我已将评估中的差异缩小到\ n字符但是我无法忽略这些差异。
为什么会这样,我该如何解决?
答案 0 :(得分:2)
您需要使用原始字符串文字,如下所示:
sys.argv[1] == r"(lp0\nS'cat'\np1\naI5\na."
此外,您可以在参数中使用不含引号的字符串。
答案 1 :(得分:1)
这是因为Python和shell中的字符串语法(可能是Bash)是不同的。
您可能希望将程序作为
运行echo $'"(lp0\nS\'cat\'\np1\naI5\na.'
program.py $'"(lp0\nS\'cat\'\np1\naI5\na.'