从python

时间:2017-03-18 20:52:03

标签: python linux bash ubuntu

我的程序是bash脚本的文本编辑器。对于run选项,我需要获取在文本框中键入的所有命令并执行它们,就像它们是一个完整的脚本一样(在文件中写入字符串然后执行它的选项也是可能的)。另外,我需要传递一些参数(输入框中的一个字符串),并在用户需要时获取stderr和stdout(复选框)。

我的程序如下:

interface

我知道如何从所有图形组件中获取数据,我的大问题是我不知道该怎么做:subprocess.call,subprocess.popen,os.system等。有很多选项。我需要在文本框中只使用一个命令:管道,简单命令,参数打印等。

我的控制台中也没有显示任何内容。

感谢您的帮助!欢迎任何想法!

我正在使用Ubuntu。

1 个答案:

答案 0 :(得分:1)

使用subprocess。它旨在取代运行外部流程的其他方法。我将尝试总结一下,而不是重复文档:

在Python 2.7中,您有几个选择:

subprocess.call:运行命令,返回返回码

subprocess.check_call:如果返回非零返回码,则引发异常

subprocess.check_output:运行命令,将输出作为字符串

返回

在Python 3.5+中,界面被简化了,您可以简单地使用subprocess.run(),它返回一个subprocess.CompletedProcess对象,您可以从中访问stdout,stderr,返回代码等。

https://docs.python.org/2.7/library/subprocess.html https://docs.python.org/3.6/library/subprocess.html