Python:从Python脚本在windows命令提示符中执行windows命令
我必须在windows命令提示符下执行python脚本 我正在使用以下命令来运行该命令,以便脚本打开命令提示符并执行它Python:从Python脚本在windows命令提示符中执行windows命令,python,python-2.7,python-3.x,command-prompt,Python,Python 2.7,Python 3.x,Command Prompt,我必须在windows命令提示符下执行python脚本 我正在使用以下命令来运行该命令,以便脚本打开命令提示符并执行它 os.system("start /wait cmd /c {c:\\python27\\python.exe C:\\examples\\xml2html.py --dir c:\\Temp\\abcd c:\\tmp\\results.xml}") 我希望在该位置创建一个名为“abcd”的新目录,并在其中创建一些输出文件 当我在windows命令提示符下正常运行此命令时,
os.system("start /wait cmd /c {c:\\python27\\python.exe C:\\examples\\xml2html.py --dir c:\\Temp\\abcd c:\\tmp\\results.xml}")
我希望在该位置创建一个名为“abcd”的新目录,并在其中创建一些输出文件
当我在windows命令提示符下正常运行此命令时,它会工作。我无法在脚本中执行此操作。Windows命令提示符将快速打开并终止
有人能告诉我这个命令到底哪里出了问题吗?除非你想打开一个新的控制台窗口,否则你不需要运行cmd.exe(%COMSPEC%
)来运行另一个Python脚本作为子进程:
import sys
from subprocess import check_call
check_call([sys.executable, "C:\\examples\\xml2html.py",
"--dir", "c:\\Temp\\abcd", "c:\\tmp\\results.xml"])
应该没问题。您是否检查了目录是否已创建?大括号的作用是什么?刚刚在windows提示符下尝试cmd.exe/c echo foo
正确输出foo
。但是cmd.exe/c{echo foo}
给出了一个错误(在Vista框中)。@sshashank124我已经检查了该目录,它没有创建one@SergeBallesta我用大括号@srp给出了完整的命令;恐怕参考文章中的花括号只是一种排版装饰。你应该试着移除它们。顺便问一下,你真的需要这么多翻译吗?你能导入第二个脚本并直接调用python函数吗?谢谢Sebastian。我不需要打开新的控制台窗口。它起作用了。@eryksun:您可以使用cmd
打开一个新的控制台窗口,例如,请参阅(start
是一个shell命令)@eryksun:您是对的:它不明确。我已经更新了答案。其含义是:不需要shell来作为子进程运行Python脚本。