Tôi đã học được rằng khi thực hiện các lệnh trong Python, tôi nên sử dụng subprocess. Những gì tôi đang cố gắng đạt được là mã hóa một tập tin thông qua ffmpeg và quan sát đầu ra chương trình cho đến khi tập tin được thực hiện. Ffmpeg ghi lại tiến trình thành stderr.Capture subprocess output
Nếu tôi cố gắng một cái gì đó như thế này:
child = subprocess.Popen(command, shell=True, stderr=subprocess.PIPE)
complete = False
while not complete:
stderr = child.communicate()
# Get progress
print "Progress here later"
if child.poll() is not None:
complete = True
time.sleep(2)
programm không tiếp tục sau khi gọi child.communicate() và chờ đợi lệnh để hoàn thành. Có cách nào khác để theo dõi đầu ra không?
liên quan: [Python: đọc đầu vào trực tiếp từ subprocess.communicate()] (http://stackoverflow.com/q/2715847/4279) – jfs