Python子进程中的Shell扩展

jav*_*nix 3 python shell python-2.6

可能重复:
Python子流程通配符用法

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

不幸的是,我正在使用不一致的spec文件,所以我对src.rpm的文件名应该是什么样子只有一个模糊的概念(例如,我知道包的名称和名称中的扩展名" {package} - {version} .src.rpm"但不是版本).

但是,我知道我在目录中只有一个src.rpm文件,所以我可以用类似命令调用mock

mock {options} *.src.rpm

并让它在shell中工作,但子进程似乎不想接受扩展.我尝试使用(shell = True)作为subprocess.call()的参数,但即使它工作,我宁愿避免它.

我怎么得到类似的东西

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

跑步?

Dav*_*man 7

使用glob包:

import subprocess    
from glob import glob
subprocess.call(["mock"] + glob("*.src.rpm"))
Run Code Online (Sandbox Code Playgroud)