为了账号安全,请及时绑定邮箱和手机立即绑定

最后一条未缓冲的行无法读取

最后一条未缓冲的行无法读取

动漫人物 2019-12-06 12:55:05
我正在尝试从“ apt-get download firefox”之类的命令中读取最后一行。通常输出将是Get:1 http://archive.ubuntu.com/ubuntu/ utopic/main firefox amd64 32.0+build1-0ubuntu2 [34.9 MB]2% [1 firefox 646 kB/34.9 MB 2%]最后一行不断更新(直到达到100%才写入换行符)。我现在的目标是实时阅读进度。这是我当前的示例代码:#!/usr/bin/python3 -u# coding=utf-8import subprocess, syspipe = subprocess.Popen(['apt-get', 'download', 'firefox'], 0, stderr = subprocess.PIPE, stdout = subprocess.PIPE)while True:    content = pipe.stdout.read(1).decode()    if content == '':        break    sys.stdout.write(content)    sys.stdout.flush()pipe.wait()我已经禁用了子进程调用的输出缓冲以及Python进程的二进制输出(带有-u参数)。但是我只得到第一行,而不是第二行的进度。有人知道我该怎么做到吗?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 331 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信