这是我现有的(非功能性)代码。

def call_GM(sourcefile):
    source = os.path.splitext(sourcefile)
    outfile = '"' + source[0] + '_straightened' + source[1] + '"'
    options = ('convert', '-auto-orient', sourcefile, outfile)
    command = 'gm'
    subprocess.call([command, options])


我如何正确传递“选项”的内容(鉴于其长度并不总是固定的)?这是最简单的示例,但实际上我有类似的代码调用几个不同的命令。

最佳答案

将命令作为平面列表或元组传递:

def call_GM(sourcefile):
    source = os.path.splitext(sourcefile)
    outfile = '"' + source[0] + '_straightened' + source[1] + '"'
    options = ['convert', '-auto-orient', sourcefile, outfile]
    command = 'gm'
    subprocess.call([command] + options)


注意:将options修改为列表,因为不允许使用list + tuple

关于python - 将未知长度的选项传递给子流程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25214858/

10-12 21:38