您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何使用Python Popen做多个参数?

如何使用Python Popen做多个参数?

要直接回答您的问题,请阅读以下内容。但是您的程序存在很多问题,我在“更好的实践”中介绍了其中的一些问题。

认情况下,subprocess.Popen命令以字符串列表形式提供。

但是,您也可以使用该shell参数执行命令“格式设置与在shell提示符下键入时完全相同”。

>>> p = Popen("cat -n file1 file2")

>>> p = Popen("cat -n file1 file2", shell=True)
>>> p = Popen(["cat", "-n", "file1", "file2"])

这两个选项之间存在许多差异,并且每个选项都有有效的用例。我不会尝试总结差异- 这些Popen文档已经做得很好。

因此,对于您的命令,您将执行以下操作:

cmd = "gnome-terminal -x sudo git clone git://github.com/pererinha/gedit-snippet-jquery.git && sudo cp -f gedit-snippet-jquery/js.xml /usr/share/gedit/plugins/snippets/js.xml && sudo rm -rf gedit-snippet-jquery"
p = Popen(cmd, shell=True, stdin=PIPE, stdout=PIPE, stderr=STDOUT,
          close_fds=False)

但是,使用Python作为许多系统命令的包装并不是一个好主意。至少,您应该将命令分解为单独的Popens,以便可以适当地处理非零退出。实际上,此脚本似乎更适合作为Shell脚本。但是,如果您坚持使用Python,则有更好的做法。

os模块应代替对rm和的调用cp。虽然我没有经验,但您可能希望查看类似GitPython的工具来与Git存储库进行交互。

python 2022/1/1 18:50:27 有380人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶