Python之命令行交互模块

模块:pexpect

简介:可以实现命令行内自动捕捉关键字,自动输入内容并执行

#实现交互pexpect模块
#先要安装软件包pexpect
#-*-coding:utf-8 -*-
#实现远程登录
def ssh():
    import pexpect,sys
    child = pexpect.spawn("/usr/bin/sh -c 'ssh -p 22 [email protected]'")		#定义一个对象
    child.expect("yes/no")				#捕捉该对象出现的关键词
    logfile = open('log.txt','wb')			#生成一个日志文件
    child.logfile = logfile				#将输出内容保存到logfile对象文件
    index = child.expect(['yes/no','password'])				#定义多个输出
    if index == 0:					#如果输出为“'yes/no'”时执行如下语句
    	child.sendline("yes")					#如果捕捉到的话输入“yes”
    	child.expect("password:")				#捕捉是否有关键词“password:”			
    	child.sendline("jia1314")				#捕捉到后输入
    elif index == 1:							#如果输出为“'password'”时执行如下语句
    	child.sendline("jia1314")
    child.expect("#")						#捕捉终端提示符“#”
    child.sendline("who")
    child.expect("#")
    logfile.close()
#ssh()
#实现长时间连接操作
def long_ssh():
	import pexpect.pxssh
	import getpass
	try:
		s = pexpect.pxssh.pxssh()				#创建pxssh对象
		hostname = '192.168.3.2'					#定义主机
		username = 'root'					#定义用户
		password = 'jiakb'			#定义密码
		s.login(hostname,username,password)				#登录服务器
		s.sendline('uptime')			#执行命令
		s.prompt()					#匹配命令提示符,多条命令时每次都要加这一条
		s.sendline('who')				#执行多次命令
		print("----------loginout---------")	#中间可以插入一些自定义东西
		s.logout()			#退出登录
	except pxssh.ExceptionPxssh as e:		#捕捉登录错误
		print("pxssh faild on login")
		print(str(e))
#long_ssh()
发布了65 篇原创文章 · 获赞 16 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_41674452/article/details/103975114