2016-07-28 139 views
2

我试图运行一个脚本,该脚本运行putty,并在创建的putty终端内运行命令。我已经能够使用Python的子进程模块使用check_call或Popen从我的脚本启动putty。不过,我很困惑我如何在脚本的子流程Putty终端中运行命令。我需要能够在腻子中运行此命令并分析Putty终端上的输出。谢谢你的帮助。如何在Python脚本的子进程中运行命令?

+0

你用腻子做什么?直接从python脚本执行任务可能更好(例如,通过SSH执行远程命令,您可以使用paramiko)。 –

+0

我不确定你的要求是什么,但你可以同时ssh和命令:'ssh [email protected]'ls -l; ps -aux; whoami''与更多的信息[这里](http://malcontentcomics.com/systemsboy/2006/07/send-remote-commands-via-ssh.html) – mitoRibo

回答

0

您需要将stdin参数设置为PIPE,并使用Popencommunicate函数将数据发送到stdin。

from subprocess import Popen, PIPE 

p = Popen('/the/command', stdin=PIPE, stdout=PIPE, stderr=PIPE) 
std_out, std_err = p.communicate('command to putty') 

这就是说,它可以更容易地使用实现ssh协议的Python库(如paramiko)而不是通过油灰去。

+1

我会认为这是1.一个链接唯一的答案。 2.由于OP似乎已经知道如何使用'Popen'启动外部程序('putty'),所以不是特别有用。问题是不打开'putty',问题是让'腻子'做OP想要的东西,一旦打开... – mgilson

相关问题