使用Python的子进程模块从命令行运行带有参数的程序

时间:2014-08-07 10:28:31

标签: python python-2.7 command-line subprocess

我使用Python的call模块中的subprocess方法在终端中运行命令

subprocess.call(['cmd', 'pybot', 'AdminTests', '-v', 'LOGIN URL:_mylink', '-d', '.\\results'])

然而,我的电话目前打开一个终端内部,基本上重新打开,然后根本没有任何剂量。为什么它没有执行我的其余命令?我已经尝试将我的完整命令作为单个字符串传递,我已将shell参数添加到我的调用中..我已经尝试了所有我能想到的但是没有任何东西让我的Python脚本完全运行此命令。

为什么我的命令没有全部运行?

编辑:代码的输出只会打开命令行,然后什么都不做。
图片:http://imgur.com/S82Hqjk

1 个答案:

答案 0 :(得分:1)

'\r'表示回车符。你需要逃避\来表示字面意思。

subprocess.call(['cmd', 'pybot', 'AdminTests', '-v', 'LOGIN URL:_mylink', '-d', '.\\results'])

或使用原始字符串文字:

subprocess.call(['cmd', 'pybot', 'AdminTests', '-v', 'LOGIN URL:_mylink', '-d', r'.\results'])

顺便说一句,如果它是当前目录,你可以省略.\