Python pexpect脚本运行时没有错误,但输出文件中没有输出

时间:2016-10-15 06:04:07

标签: python linux devops pexpect

我想把结果放在' ls / home'通过ssh.So进入mylog1.txt,我可以在我的电脑上查看它。当我运行脚本时,没有错误,mylog1.txt中没有输出。

#!/usr/bin/env python
import pexpect
import sys

child=pexpect.spawn('ssh shiyanlou@192.168.42.2')
fout=file('mylog1.txt','w')
child.logfile=fout

child.expect("password:")
child.sendline("xxxxx")
child.expect('$')
child.sendline('ls /home')
shiyanlou:pythontest/ $ cat mylog1.txt                                                                                    
shiyanlou@192.168.42.2's password: xxxxxxx 
ls /home

mylog1.txt文件中只有两个命令。为什么?

2 个答案:

答案 0 :(得分:0)

pexpect很适合与应用程序进行交互。

但是如果你只是想要ssh并执行一些命令,我​​会建议你试试Paramiko

答案 1 :(得分:0)

您必须等到vvi命令完成,就像您与终端进行交互一样。请参阅以下示例(我正在使用ssh的公钥身份验证,因此没有密码提示):

42