我有一个命令,如下所示
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()
注意 - 我不想看到命令执行的返回值。我只知道如何通过subprocess.check_call()
格式化命令答案 0 :(得分:1)
您应该仅使用subprocess
内容的列表形式(可能是隐含的)shell=False
,并将字符串形式仅用于shell=True
。
shell只能使用命令行,然后命令行自行解析。如果没有shell,exec*()
函数将被使用,它以分离的方式获取命令行参数。
对于Windows,这只能保持一定的水平,但仍然有效。