WEB开发网
开发学院软件开发Python 探索 Pexpect,第 1 部分:剖析 Pexpect 阅读

探索 Pexpect,第 1 部分:剖析 Pexpect

 2009-08-29 00:00:00 来源:WEB开发网   
核心提示: 函数 run 可以用来运行命令,其作用与 Python os 模块中 system() 函数相似,探索 Pexpect,第 1 部分:剖析 Pexpect(2),run() 是通过 Pexpect 类实现的,如果命令的路径没有完全给出,它有丰富的方法与子程序交互从而实现用户对子程序的控制,它主要

函数 run 可以用来运行命令,其作用与 Python os 模块中 system() 函数相似。run() 是通过 Pexpect 类实现的。

如果命令的路径没有完全给出,则 run 会使用 which 命令尝试搜索命令的路径 。

清单 2. 使用 run()执行 svn 命令

from pexpect import * 
run ("svn ci -m 'automatic commit' my_file.py") 

与 os.system() 不同的是,使用 run() 可以方便地同时获得命令的输出结果与命令的退出状态 。

清单 3. run() 的返回值

from pexpect import * 
(command_output, exitstatus) = run ('ls -l /bin', withexitstatus=1) 

command_out 中保存的就是 /bin 目录下的内容。

Pexpect 提供的 spawn() 类:

使用 Pexpect 启动子程序

清单 4. spawn 的构造函数

class spawn: 
  def __init__(self,command,args=[],timeout=30,maxread=2000,\ 
  searchwindowsize=None, logfile=None, cwd=None, env=None) 

spawn是Pexpect模块主要的类,用以实现启动子程序,它有丰富的方法与子程序交互从而实现用户对子程序的控制。它主要使用 pty.fork() 生成子进程,并调用 exec() 系列函数执行 command 参数的内容。

可以这样使用:

清单 5. spawn() 使用示例

child = pexpect.spawn ('/usr/bin/ftp') #执行ftp客户端命令 
child = pexpect.spawn ('/usr/bin/ssh user@example.com') #使用ssh登录目标机器 
child = pexpect.spawn ('ls -latr /tmp') #显示 /tmp目录内容 

上一页  1 2 3 4 5 6 7  下一页

Tags:探索 Pexpect 部分

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接