我正在尝试使用subprocess模块中的run方法从我的 Python 脚本中使用命令行选项启动命令行程序。
我的命令被定义为指定程序和选项的字符串列表,如下所示(其中pheno_fp和construction_fp是代表我系统中文件路径的字符串,exe是代表我正在运行的程序的文件路径的字符串):
step1_cmd = [exe,
"--step 1",
"--p " + pheno_fp,
"--b 1000",
"--o " + construction_fp + "dpw_leaveout"]
不工作- 当我尝试以下操作时,我要运行的程序已启动,但我指定的命令被错误解释,因为程序退出并显示错误“使用 --o 标志指定输出文件路径”:
test1 = subprocess.run(step1_cmd)
工作- 当我尝试以下操作时,程序正确执行,这意味着所有参数都按预期解释:
test1 = subprocess.run(" ".join(step1_cmd), shell=True)
如果我正确理解了文档,前一种方法是推荐的用法,但我不明白为什么它不起作用。我很确定它的格式与文档中的示例相同,所以我有点难过。有任何想法吗?
智慧大石
三国纷争
相关分类