Tag: pty

最后一个无缓冲行不能被读取

我正在尝试从“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-8 import subprocess, sys pipe = 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() 我已经禁用了subprocess调用的输出缓冲,也禁用了Python进程的二进制输出(使用-u参数)。 […]