gpt4 book ai didi

python - Python 中的子进程文件操作

转载 作者:行者123 更新时间:2023-11-28 17:55:41 26 4
gpt4 key购买 nike

我有一个命令行程序,可以通过以下子进程运行。

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'])

注意用于解包参数的*。有关拆包的更多信息,请参阅 herehere

不需要先加入参数,这只会创建一个长字符串(仍然是一个参数)

一个例子:

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']

关于python - Python 中的子进程文件操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58605775/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com