gpt4 book ai didi

python - 如何将文件列表传递到Python子进程

转载 作者:行者123 更新时间:2023-12-01 04:54:00 24 4
gpt4 key购买 nike

我正在尝试使用 python 在 UNIX 上执行系统可执行文件。我已经使用 op.system() 来执行此操作,但确实需要使用 subprocess.call() 来代替。我的系统调用如下:

os.system('gmsh default.msh_timestep%06d*animation_options.geo' %(timestep));

并且工作正常。它调用程序 gmsh,gmsh 读取 default.msh_timestep%06d* 中指定的一系列文件。然后,我尝试对子进程执行相同的操作,但出现错误,提示文件不存在。以下是子流程调用:

call(["gmsh", "default.msh_timestep%06d*"%(timestep), "animation_options.geo"],shell=True);

有人知道这里发生了什么吗?诚然,我是一个 Python 菜鸟,所以这可能是一个愚蠢的问题。

最佳答案

通配符是由 shell 为您完成的。在Python中,你需要自己做。您可以使用glob.glob获取与模式匹配的文件列表:

import glob

call(["gmsh"] + glob.glob("default.msh_timestep%06d*" % (timestep,)) +
["animation_options.geo"])

如果您想使用shell=True,请传递一个字符串而不是字符串列表:

call("gmsh default.msh_timestep%06d* animation_options.geo" % (timestep,), shell=True)

关于python - 如何将文件列表传递到Python子进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27851409/

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