如何查看“subprocess.check_call()”执行的实际命令

时间:2014-11-11 06:56:38

标签: python command-line

我有一个命令,如下所示

subprocess.check_call(["C:\\Program Files\\operation.exe", "execute", "-af", "createrecord.xml", " -stuName", student,"-gender" ,gender], shell=True)

当我手动运行此命令时,它可以正常工作。我相信subprocess.check_call()没有正确解析命令(可能是我的错误)。如何查看subprocess.check_call()的输出。
    我希望通过subprocess.check_call()

调用带有参数的acutal命令。

注意 - 我不想看到命令执行的返回值。我只知道如何通过subprocess.check_call()

格式化命令

1 个答案:

答案 0 :(得分:1)

您应该仅使用subprocess内容的列表形式(可能是隐含的)shell=False,并将字符串形式仅用于shell=True

shell只能使用命令行,然后命令行自行解析。如果没有shell,exec*()函数将被使用,它以分离的方式获取命令行参数。

对于Windows,这只能保持一定的水平,但仍然有效。