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

2024-04-27 13:29:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用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呆子,所以这可能是个愚蠢的问题。在


Tags: 文件可执行文件default系统unixcallsystemgeo
1条回答
网友
1楼 · 发布于 2024-04-27 13:29:47

球是由外壳为你完成的。在Python中,您需要自己完成。可以使用^{}获取与模式匹配的文件列表:

import glob

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

如果要使用shell=True,请传递字符串列表的字符串isntead:

^{pr2}$

相关问题 更多 >