在子过程中扩展Shell?

问题描述

使用glob包装:

import subprocess    
from glob import glob
subprocess.call(["mock"] + glob("*.src.rpm"))

解决方法

使用Python 2.6子流程模块,我需要在要使用先前的子流程调用构建的src.rpm文件上运行命令。

不幸的是,我使用的规范文件不一致,因此我对src.rpm的文件名应该是什么样的模棱两可(例如,我知道包的名称和扩展名为“
{package}-{version} .src.rpm”,而不是版本)。

但是,我确实知道我要查找的目录中只有一个src.rpm文件,因此我可以使用以下命令来调用模拟

mock {options} *.src.rpm

并使其可以在Shell中运行,但是子进程似乎不想接受扩展。我已经尝试使用(shell =
True)作为subprocess.call()的参数,但是即使它起作用了,我还是希望避免使用它。

我如何得到类似的东西

subprocess.call("mock *.src.rpm".split())

跑步?