这是我现有的(非功能性)代码。
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/