我正在尝试使用subprocess.call()
在python3中执行命令行程序。我可以让它工作正常,以下示例执行没有问题:
subprocess.call(['add_phenotype.py', '-t', threads, '-s'])
但是,我想解析一个文件,然后根据我发现的内容,运行带有不同标志的命令。我无法弄清楚如何做到这一点。
例如:
if zeroed_out_file:
args = '-z'
else:
args = ''
subprocess.call(['add_phenotype.py', '-t', threads, '-s', args])
如果zeroed_out_file为FALSE,则失败。 add_phenotype.py脚本立即退出,声称它无法识别参数。
答案 0 :(得分:4)
第一个参数采用一个列表;只是动态构建该列表:
args = ['add_phenotype.py', '-t', threads, '-s']
if zeroed_out_file:
args.append('-z')
subprocess.call(args)
添加额外的命令行开关只是向args
附加更多值的问题。