python - python3.6 PEXPECT 没有将日志写入日志文件
问题描述
我正在尝试将 pexpect 日志记录到文件中。该代码在 python2.7 中运行,但在 python3.6 中未打印日志
import pexpect
child = pexpect.spawn("telnet IP")
fout = open("abc.txt", "wb"):
child.logfile = fout
child.sendlines("somecommand)
解决方案
很难相信这段代码确实在 Python 2.7 中运行;)
您的上下文管理器在完成后立即退出child.logfile = fout
,因此当您的子进程随后尝试写入文件句柄时,您的文件句柄将关闭。您必须保持文件句柄打开,直到您的孩子完成,例如:
import pexpect
with open("abc.txt", "wb") as fout:
child = pexpect.spawn("telnet IP")
child.logfile = fout
# -- OR --
child = pexpect.spawn("telnet IP")
with open("abc.txt", "wb") as fout:
child.logfile = fout
child.expect(<some pattern here>)
推荐阅读
- c - 如何计算由随机数生成器中的两组数据创建的 2 组的总和?
- python - 快速问题:使用 scipy.optimize.minimize tol 参数的默认值
- javascript - 为什么 PHP 看不到来自 ajax js 的值?
- php - 在 Laravel 中搜索的条件路由
- relay - 使用 graphql-java 构建 Relay GraphQL 服务器
- amazon-web-services - 用于 Webhook 到客户端 (HTTP) 的 Amazon SNS
- java - 使用 Junit5 在 Spring Boot 应用程序中测试服务层时如何避免数据库连接
- typescript - 如何使用 as 类型修复接口语法错误?
- html - 为什么 xpath 在使用 `not` 时不选择具有空类的元素?
- nativescript - nativescript-ui-sidedrawer - 在 iOS 中加载问题:TypeError:无法加载视图:NativeRadSideDrawer