Python 读取标准输出内容不完整,什么问题造成的?

kilmerzhao 2015-08-19 09:17:28
代码如下:

command = 'top -b -n 1'
popen = Popen(command,stdout=PIPE,stderr=PIPE,shell=True);
while True:
next_line = popen.stdout.readline()
if next_line == '' and popen.poll() != None:
break;
else:
print next_line


在Linux下执行top -b -n 1 的标准输出有30多行,但是代码执行后读取的标准输出只有十多行,

不清楚是什么问题造成的,尝试过其他写法,读取到的标准输出也只有十多行。
...全文
402 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kilmerzhao 2015-08-19
  • 打赏
  • 举报
回复
引用 3 楼 sprawling 的回复:
[quote=引用 2 楼 kilmerzhao 的回复:] [quote=引用 1 楼 sprawling 的回复:] 看不出什么问题啊,我这里运行正常的.
你好 问题情景是这样的, 如果直接在Linux的终端上执行top -b -n 1,会显示有30行的输出。 但是通过python脚本执行这条命令后,从标准输出读取的话,只读取出来一半,还有一半没有。[/quote] 明白你的 意思,就是在我这里不会有这种情况,一样的代码, 或许有别的原因吧. 我这边用脚本获取的,跟直接输入top -b -n 1 结果是一样的.[/quote] 好的 谢谢啦~
sprawling 2015-08-19
  • 打赏
  • 举报
回复
引用 2 楼 kilmerzhao 的回复:
[quote=引用 1 楼 sprawling 的回复:] 看不出什么问题啊,我这里运行正常的.
你好 问题情景是这样的, 如果直接在Linux的终端上执行top -b -n 1,会显示有30行的输出。 但是通过python脚本执行这条命令后,从标准输出读取的话,只读取出来一半,还有一半没有。[/quote] 明白你的 意思,就是在我这里不会有这种情况,一样的代码, 或许有别的原因吧. 我这边用脚本获取的,跟直接输入top -b -n 1 结果是一样的.
kilmerzhao 2015-08-19
  • 打赏
  • 举报
回复
引用 1 楼 sprawling 的回复:
看不出什么问题啊,我这里运行正常的.
你好 问题情景是这样的, 如果直接在Linux的终端上执行top -b -n 1,会显示有30行的输出。 但是通过python脚本执行这条命令后,从标准输出读取的话,只读取出来一半,还有一半没有。
sprawling 2015-08-19
  • 打赏
  • 举报
回复
看不出什么问题啊,我这里运行正常的.

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧