Catch print output
我正在使用opencv,有一个使用videocapture读取视频帧的调用,并且有一个打印语句自动在控制台上打印错误和信息,我想捕获这些输出并保存到一个文件中。
videocapture没有返回此语句,它只是直接打印
我该怎么做?
我不知道这是不是最好的方法,但它会起作用的。
通过键入以下命令,您可以读取程序打印到控制台中的所有内容:
在这里,我们将
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import os import sys from subprocess import Popen, PIPE, STDOUT script_path = os.path.join('name_of_your_program.py') p = Popen([sys.executable, '-u', script_path], stdout=PIPE, stderr=STDOUT, bufsize=1) while True: print("test-test-test-test") string = p.stdout.readline() print(string[0:3]) |
输出:
1 2 3 4 5 6 | test-test-test-test b'tes' test-test-test-test b"b'T" test-test-test-test b'tes' |
号
(它读取二进制文件,因此必须将其转换为字符串。)