I want to escape '"' and all other wild chars in program name and arguments, so I try to double quote them. and I can do this in cmd.exe
C:ayestgo>"test.py" "a" "b" "c"
hello
['C:\bay\test\go\test.py', 'a', 'b', 'c']
but what's wrong with the following code using os.sytem?
cmd = '"test.py" "a" "b" "c"'
print cmd
os.system(cmd)
its output:
C:ayestgo>test2.py
"test.py" "a" "b" "c"
'test.py" "a" "b" "c' is not recognized as an internal or external command,
operable program or batch file.
Why is the whole string '"test.py" "a" "b" "c"' recognized as a single command? But the following example isn't:
cmd = 'test.py a b c'
print cmd
os.system(cmd)
C:ayestgo>test2.py
test.py a b c
hello
['C:\bay\test\go\test.py', 'a', 'b', 'c']
Thanks!
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…