doble cita escapando en os.system en windows
Quiero escapar '' 'y todos los demás caracteres comodín en el nombre y los argumentos del programa, así que trato de darles una doble cita. Y puedo hacer esto en cmd.exe
C:\bay\test\go>"test.py" "a" "b" "c"
hello
['C:\\bay\\test\\go\\test.py', 'a', 'b', 'c']
¿Pero qué hay de malo con el siguiente código usando os.sytem?
cmd = '"test.py" "a" "b" "c"'
print cmd
os.system(cmd)
su salida:
C:\bay\test\go>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.
¿Por qué toda la cadena '"test.py" "a" "b" "c"' se reconoce como un solo comando? Pero el siguiente ejemplo no es:
cmd = 'test.py a b c'
print cmd
os.system(cmd)
C:\bay\test\go>test2.py
test.py a b c
hello
['C:\\bay\\test\\go\\test.py', 'a', 'b', 'c']
¡Gracias!