打开终端并通过python脚本运行命令

时间:2015-02-03 06:18:19

标签: python-3.x terminal ubuntu-14.04

我刚开始使用Python,我也没有任何其他编程语言的经验。在此先感谢帮助我。

我希望打开终端并运行像“ls -a”这样的命令,并在我在IDLE中运行的python脚本的帮助下显示终端输出。我已经尝试了几个选项,命令正在运行,但我无法看到输出。

请帮助我。

2 个答案:

答案 0 :(得分:0)

要按字面意思执行,请使用subprocess.Popen打开shell并运行命令。这是Windows的等价物,有两个选项可以做同样的事情。

import subprocess as sub

sub.Popen('cmd /K dir')
sub.Popen(['cmd', '/K', 'dir'])

我相信列表形式对* nix更有效。 ' CMD'将是' sh'或者对你而言。 ' / K'表示'运行以下命令并保持打开以供查看

但是,目前尚不清楚为什么要在新的shell窗口中输出而不是Python已经运行的窗口。另请注意,Idle通常用于开发程序而不是运行它们。

如果您编辑了问题以显示您尝试的内容并解释发生的情况以及结果不满意的原因,您可能会得到更好的答案。

答案 1 :(得分:0)

for arg in args:
pro = subprocess.Popen(['new_shell', arg],
                       stdin=subprocess.PIPE,
                       stdout=subprocess.PIPE,
                       stderr=subprocess.PIPE)
inpt = <script_to_be_run_in_shell> + <arguments> +'\n'
out, err = pro.communicate(inpt.encode())
相关问题