我的程序是bash脚本的文本编辑器。对于run选项,我需要获取在文本框中键入的所有命令并执行它们,就像它们是一个完整的脚本一样(在文件中写入字符串然后执行它的选项也是可能的)。另外,我需要传递一些参数(输入框中的一个字符串),并在用户需要时获取stderr和stdout(复选框)。
我的程序如下:
我知道如何从所有图形组件中获取数据,我的大问题是我不知道该怎么做:subprocess.call,subprocess.popen,os.system等。有很多选项。我需要在文本框中只使用一个命令:管道,简单命令,参数打印等。
我的控制台中也没有显示任何内容。
感谢您的帮助!欢迎任何想法!
我正在使用Ubuntu。
答案 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