在子过程中扩展Shell?[重复]

发布于 2021-01-29 15:05:26

这个问题已经在这里有了答案

7年前关闭。

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

使用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())

跑步?

关注者
0
被浏览
71
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    使用glob包装:

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


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看