将列表值传递到子进程中

时间:2017-11-28 20:56:33

标签: python shell subprocess

我想在python中使用subprocess将多个字符串从列表传递到子进程,这样我就可以在unix服务器上执行命令。

我有四个文件S3_R1,S3_R2,S4_R1,S4_R2并创建了一个带有部分名称的文件。

我试图将字符串列表传递给subprocess.run()

我尝试过这个并没有成功并产生错误。

import subprocess
partial_name_files = ['S3_R', 'S4_R']

for file in partial_name_files:
    print(subprocess.run(["commands", "-arg1 -arg2 {0}1.gz {0}2.gz"].format(file)))
  

错误消息 - AttributeError:'list'对象没有属性'format'

1 个答案:

答案 0 :(得分:1)

您正尝试在format对象上运行strlist方法(如提及的例外情况)。

要解决此问题,请更改format来电的位置:

print(subprocess.run(["commands", "-arg1 -arg2 {0}1.gz {0}2.gz".format(file)]))