WEB开发网
开发学院软件开发Python 探索 Pexpect,第 2 部分:Pexpect 的实例分析 阅读

探索 Pexpect,第 2 部分:Pexpect 的实例分析

 2009-08-29 00:00:00 来源:WEB开发网   
核心提示: 注:运行:./command.py -a -c who cmd.log 运行结束后,cmd.log的内容为:IBMdeveloperWorksChinaRoot:02009-05-1222:40Rootpts/12009-05-1222:40(:0.0)Rootpts/22009-07-0518

注:

运行:./command.py -a -c who cmd.log

运行结束后,cmd.log 的内容为: 
IBM developerWorks China 
Root  :0  2009-05-12 22:40 
Root  pts/1  2009-05-12 22:40 (:0.0) 
Root  pts/2  2009-07-05 18:55 (9.77.180.94)

logfile:

只能通过 spawn 类的构造函数指定。在 spawn 类的构造函数通过参数指定 logfile 时,表示开启或关闭 logging 。所有的子程序的 input 和 output 都会被 copy 到指定的 logfile 中。设置 logfile 为 None 表示停止 logging,默认就是停止 logging 。设置 logfile 为 sys.stdout,会将所有东西 echo 到标准输出。

logfile_read和logfile_send:

logfile_read:只用来记录 python 主程序接收到 child 子程序的输出,有的时候你不想看到写给 child 的所有东西,只希望看到 child 发回来的东西。 logfile_send:只用来记录 python 主程序发送给 child 子程序的输入 logfile、logfile_read 和 logfile_send 何时被写入呢? logfile、logfile_read 和 logfile_send 会在每次写 write 和 send 操作后被 flush 。

调用 send 后,才会往 logfile 和 logfile_send 中写入,sendline/sendcontrol/sendoff/write/writeline 最终都会调用 send,所以 sendline 后 logfile 中一定有内容了,只要此时 logfile 没有被 close 。

调用 read_nonblocking 后,才会往 logfile 和 logfile_read 中写入,expect_loop 会调用 read_nonblocking,而 expect_exact 和 expect_list 都会调用 expect_loop,expect 会调用 expect_list,所以 expect 后 logfile 中一定有内容了,只要此时 logfile 没有被 close 。

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

Tags:探索 Pexpect 部分

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