【问题标题】:Passing list values into a subprocess将列表值传递给子流程
【发布时间】:2018-05-12 10:53:06
【问题描述】:

我想在 python 中使用子进程将列表中的多个字符串传递到子进程中,这样我就可以在 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' object has no attribute 'format'

【问题讨论】:

    标签: python shell subprocess


    【解决方案1】:

    您正在尝试在 list 对象上运行 formatstr 方法(如异常提及)。

    要解决此问题,请更改 format 呼叫的位置:

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

    【讨论】:

    • 对不起,我打错了,格式位置和你写的一样。我会更新问题。
    • 您在问题中的代码仍然与我的不同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-08
    • 1970-01-01
    相关资源
    最近更新 更多