使用Python 2.6子模块,我需要对我与建设的src.rpm文件运行命令先前的子流程调用。
不幸的是,我正在处理不一致的spec文件,所以我只是对src.rpm的文件名应该是什么样子有一个模糊的概念(例如,我知道包的名称和扩展名在名为“{package} - {version} .src.rpm”的东西中,但不是版本)。
但是我知道,我只会在我要找目录中一个文件的src.rpm,这样我就可以像
mock {options} *.src.rpm
调用模拟一个命令和它的工作在shell中,但子进程似乎不想接受扩展。我试过使用(shell = True)作为subprocess.call()的参数,但即使它工作,我宁愿避免它。
如何获得类似
subprocess.call("mock *.src.rpm".split())
运行?
我认为你正在运行到这个问题是因为通配符文件名被处理OS创建命令之前,所以你必须自己查找文件名,并将它们全部通过命令行传递。 –
您可能还想尝试调用subprocess.Popen,但我不确定它是否能解决您的问题,但本教程显示了一个示例:http://www.dreamsyssoft.com/python-scripting- tutorial/shell-tutorial.php –
你可以通过'glob.glob('*。src.rpm')'得到文件名列表,它将返回一个列表。那么你只需要在那里预先设置一个“模拟”...... – mgilson