如何从python执行程序? os.system失败

时间:2014-12-26 22:18:21

标签: python windows python-2.7 os.system

我想用os.system运行命令,但是我收到错误

c:/fe ' is not recognized as an internal or external command, operable program or batch file

我使用的代码是

import os
os.system('"C:\\fe re\\python.exe" program "c:\\test now\\test.txt" http://site.to.explore')

如果我只运行它将会起作用:

import os
os.system('"C:\\fe re\\python.exe" program -h')

或者如果我在这样的python路径中没有空格

import os
os.system('C:\\fere\\python.exe program "c:\\test now\\test.txt" http://site.to.explore')

但如果我在python路径和txt路径中的命令中都有两对双引号,我会收到错误...

1 个答案:

答案 0 :(得分:4)

os.system有一些严重的缺点,特别是文件名和w.r.t中的空格。安全。我建议您查看subprocess模块,特别是subprocess.check_call,它更强大。然后你可以这样做。

import subprocess
subprocess.check_call(["c:\\fe re\\python.exe", "program", etcetc...])

当然,除非用户已经使用相同的权限从命令行自行运行脚本,否则请务必小心不要在这些调用中使用用户确定的变量。