
看到自动化测试的一个例子,RSpec中通过IO.popen进行命令行程序的测试(涉及交互),
然后在Python中,Popen的用法有点小的区别,查了一些资料,有些内容整理下,记个笔记:
python3中目前用subprocess库Popen,可设置stdin,stdout为PIPEPopen.communicate()是用于一次性通信的辅助函数多行的交互式的通信,用write和readline,用的时候注意读写阻塞,按照write->flush->read的顺序,示例代码:proc.stdin.write(b'2+2\n')proc.stdin.flush()print(proc.stdout.readline())
参考:
Multiple inputs and outputs in python subprocess communicateInteracting with a long-running child process in Python扩展:
因为用于自动化测试,不用考虑非阻塞的情况了,还是Ruby的语法糖甜。
总结
以上是内存溢出为你收集整理的python的Popen多行交互全部内容,希望文章能够帮你解决python的Popen多行交互所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)