Python-sys.stdout.buffer.write太慢-视频转换为ascii

Python-sys.stdout.buffer.write太慢-视频转换为ascii,python,terminal,ascii,stdout,Python,Terminal,Ascii,Stdout,我正在创建一个程序来打印来自视频或图像的Ubuntu终端Ascii帧 我的问题很微妙,因为除了发送到终端的stdout外,其他一切都足够快 例如,来自视频的彩色400x100 Ascii“图像”具有以下结果: -总FPS:1.5 -系统标准缓冲区写入(字符)FPS:2 -计算FPS:20 chararray中是组成“一个像素”的结果字符串的字节 由于程序速度足够快,而且我的速度只有stdout慢,我已经没有选择了 还有其他选择吗?sys.stdout.write()缓冲输入并且可能不会立即刷

我正在创建一个程序来打印来自视频或图像的Ubuntu终端Ascii帧

我的问题很微妙,因为除了发送到终端的stdout外,其他一切都足够快


例如,来自视频的彩色400x100 Ascii“图像”具有以下结果:

-总FPS:1.5

-系统标准缓冲区写入(字符)FPS:2

-计算FPS:20

chararray中是组成“一个像素”的结果字符串的字节

由于程序速度足够快,而且我的速度只有stdout慢,我已经没有选择了


还有其他选择吗?

sys.stdout.write()
缓冲输入并且可能不会立即刷新输入,您可以使用
print
而不是s
ys.stdout.buffer.write
或者为了确保它的行为类似于打印函数,您应该添加:`sys.stdout.flush()`。这可能会有帮助,我只是尝试了一下,速度结果是一样的-首先刷新,然后我重塑了chararray,解码并打印它。FPS print与之相同。它可能不是stdout的限制,而是终端的限制?
sys.stdout.write()
缓冲输入,并且可能不会立即刷新输入。您可以使用
print
而不是s
ys.stdout.buffer.write
或为了确保其行为与打印功能类似,您应该添加:`sys.stdout.flush()`。这可能会有帮助,我只是尝试了一下,速度结果是一样的-首先刷新,然后我重塑了chararray,解码并打印它。FPS打印是否相同?是否可能不是标准输出的限制,而是终端的限制?