首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

python 怎么实现自动输入密码

2013-02-04 
python 如何实现自动输入密码在用python执行一个命令(关闭虚拟IP),该命令需要root权限,因此使用sudo来执行

python 如何实现自动输入密码
在用python执行一个命令(关闭虚拟IP),该命令需要root权限,因此使用sudo来执行,主要命令如下所示:
cmd = 'sudo ifconfig bond0:0 down'
p = sp.Popen(cmd, stdin = sp.PIPE, stdout = sp.PIPE, stderr = sp.PIPE, shell=True)
p.communicate('password')
p.wait()
本是希望使用communicate来输入密码,
但是在运行时还是会提示:
Password: 
并一直等待用户输入;
哪位达人知道如何解决啊!!!!
python shell
[解决办法]
试试调用input后write到PIPE中,没试过
[解决办法]
试一下 b'password'
[解决办法]
还有一种做法,楼主会expect语言不,这个可以做到呢,非常好,类似shell脚本,可以python调用;

[解决办法]

引用:
引用:还有一种做法,楼主会expect语言不,这个可以做到呢,非常好,类似shell脚本,可以python调用;

恩,这个是可以,刚用shell实现了一次,已经达到目的。
只是想知道为什么用subprocess时捕获了stdout、stderr,还是会有输出?


self.proc = subprocess.Popen(cmd.cmdStr, env=None, shell=True,
                                       executable='/bin/bash',
                                       stdin=subprocess.PIPE,
                                       stderr=subprocess.PIPE,
                                       stdout=subprocess.PIPE,
                                       preexec_fn=preexec_fn,
                                       close_fds=True)
        (stdout_value, stderr_value) = self.proc.communicate(input=self.stdin)
这是我好久之前的做法,楼主可以看看有帮助不,另外楼主还是多看看python的官方手册关于这个模块的介绍,肯定会有答案的。

热点排行