python中expect的作用_expect基本使用方法

参考:

http://www.cnblogs.com/lzrabbit/p/4298794.html

expect是linux系统中可以和子进程进行交互的一个命令,使用它可以做一些自动化工作。python中也有一个模块pexpect,提供了类似的功能。

例如:使用ssh登陆需要输入密码,可以使用expect代替手工输入。

例如:使用passwd修改账户密码,也可以使用expect代替。

expect用多种执行方式,交互式,执行文件,执行命令。

1.交互式 在命令行输入expect进入交互式

常用命令

send    发送字符串到子进程或者当前进程,注意要最后要有\n作为结束

expect 期望的字符串

spawn 开启一个子进程

interact

2.将expect命令写入文件中,执行该文件

expect最常用的语法是来自tcl语言的模式-动作

多分支,匹配到字符串,执行后面的动作。

expect {"hi" { send "You said hi\n"}

"hello" { send "Hello yourself\n"}

"bye" { send "That was unexpected\n"}

}

#!/usr/bin/expect -f

set ipaddr "192.168.16.222"

set passwd "yourpasswd"

spawn ssh root@$ipaddr              #spawn   开启一个子进程执行命令。

# expect按顺序执行,大括号是匹配到相应模式,执行相应命令。

expect {

"(yes/no)?" {

send "yes\n"

expect "assword:"  {send "$pasword\n"}

}

"assword:" {

send "$password\n"

}

}

3.使用-c参数直接在命令行中执行

expect -c ‘expect "dddd" {send "dddd"}

### 回答1: Python的try-except语句用于捕获和处理异常。它的基本语法如下: ``` try: # 可能会出现异常的代码块 except ExceptionType1: # 处理 ExceptionType1 异常的代码块 except ExceptionType2: # 处理 ExceptionType2 异常的代码块 else: # 如果没有异常发生,执行的代码块 finally: # 无论是否有异常发生,都会执行的代码块 ``` 在try语句块,我们可以放置可能会出现异常的代码。如果try语句块的代码出现了异常,那么程序会跳转到相应的except语句块,执行相应的代码。如果没有出现异常,那么程序会跳转到else语句块,执行相应的代码。无论是否有异常发生,finally语句块的代码都会被执行。 在except语句块,我们可以指定要处理的异常类型。如果出现了指定的异常类型,那么程序会执行相应的代码。如果没有指定异常类型,那么程序会处理所有的异常类型。 在else语句块,我们可以放置在没有异常发生时要执行的代码。 在finally语句块,我们可以放置无论是否有异常发生都要执行的代码。 ### 回答2: Python try except语句用于在程序执行时,指定出现异常时跳转到异常处理代码并进行处理,保证程序的正常运行。try语句包含了一块儿的待用Python解释器监视异常的代码块儿。except语句包含了所要求解的异常及当异常发生时所执行的代码块儿。 try语句块儿的代码被执行,如果发生异常,则try语句块儿余下的代码将被忽略。如果异常的类型匹配except从句的异常,则执行except从句的代码。如果异常不被 except从句匹配,则传递给外层try语句,或者如果不匹配任何外层处理程序,则成为未处理异常并退出程序。 try语句可带有多个except从句。如果try语句块儿发生不同类型的异常,except从句将按从上到下顺序进行匹配,并执行第一个匹配的异常处理程序。如果需要为每种异常类型定义单独的处理程序,则需要提供对应的except从句。 try语句可以有finally从句,同时必须有except从句或者至少一个except从句。finally从句被放置在最后一个except从句之后,如果存在它们。该语句块儿将在执行try块儿的所有代码后被执行,无论是否发生异常,进行必要的清理、关闭非文件对象、将游标移到数据库的第一个位置等。 例子: ``` try: # 执行代码 pass except ExceptionType: # 如果在try块儿抛出了异常,则执行此块儿 pass finally: # 不论发生了什么事情,此代码块儿都会执行 pass ``` 总之,Python的try except语句可以保证程序执行时的稳定性。 ### 回答3: Python,try和except语句用于捕获代码块的异常,并提供了一种处理异常的方式。 try语句包含了可能会抛出异常的代码块,它的语法结构如下: try: # 可能会抛出异常的代码块 except: # 异常处理代码 当try语句的代码块执行时,如果出现了异常,就会跳转到except语句块的代码进行处理。在except语句,我们可以通过捕获的异常对象来获取关于异常的信息,并根据需要进行处理。如果try语句的代码块未出现异常,那么就会直接跳过except语句,程序会继续执行下去。 在使用try语句时可以添加finally语句,无论是否出现异常,finally语句的代码一定会被执行。它的语法结构如下: try: # 可能会抛出异常的代码块 except: # 异常处理代码 finally: # 一定会执行的代码块 在except语句,我们还可以指定需要捕获的异常类型。例如,如果我们只想捕获ZeroDivisionError类型的异常,可以这样写: try: # 可能会抛出异常的代码块 except ZeroDivisionError: # 处理ZeroDivisionError异常的代码 当然,我们也可以指定多个捕获的异常类型,需要在except语句用逗号隔开。例如: try: # 可能会抛出异常的代码块 except (ZeroDivisionError, TypeError, ValueError): # 处理ZeroDivisionError、TypeError或ValueError异常的代码 总之,try和except语句为我们提供了一种有效的异常处理机制,可以帮助我们避免程序因为异常而崩溃。在编写代码时,我们应该尽量使用try和except语句进行异常处理,以保证程序的健壮性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值