我有一个命令行程序,可以通过以下子进程运行。
subprocess.call([CMD.bat, '-infile', infile1.tif, infile2.tif, '-outfile', outfile.tif])
当输入文件很少时,上面的代码没有问题。
但是,当输入文件很多时,很难全部输入它们。因此,我想使用glob.glob输入所有文件。
files = glob.glob("D:\\*.tif")
files = ",".join(files)
subprocess.call([CMD.bat, '-infile', files, '-outfile', outfile.tif])
不幸的是,此代码根本无法运行。如何解决这个问题呢?
任何想法,请帮忙。
您不能将其files
作为单个参数输入,您需要对其进行解压缩:
files = glob.glob("D:\\*.tif")
subprocess.call(['cmd.bat', '-infile', *files, '-outfile', 'outfile.tif'])
join
首先不需要参数,只需创建一个长字符串(仍然是一个参数)
一个例子:
files = ['1.tif', '2.tif']
cmd = ['cmd.bat', '-infile', *files, '-outfile', 'outfile.tif']
print(cmd) # ['cmd.bat', '-infile', '1.tif', '2.tif', '-outfile', 'outfile.tif']
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句