【发布时间】:2020-06-24 12:42:08
【问题描述】:
这是手册上的内容,但我不明白:
强制标准输入、标准输出和标准错误完全无缓冲。在系统上 在重要的地方,还将标准输入、标准输出和标准错误置于二进制模式。 请注意,xreadlines()、readlines() 中有内部缓冲 和文件对象迭代器(“for line in sys.stdin”)不是 受此选项影响。要解决此问题,您需要 在“while 1:”循环中使用“sys.stdin.readline()”。
【问题讨论】:
这是手册上的内容,但我不明白:
强制标准输入、标准输出和标准错误完全无缓冲。在系统上 在重要的地方,还将标准输入、标准输出和标准错误置于二进制模式。 请注意,xreadlines()、readlines() 中有内部缓冲 和文件对象迭代器(“for line in sys.stdin”)不是 受此选项影响。要解决此问题,您需要 在“while 1:”循环中使用“sys.stdin.readline()”。
【问题讨论】:
Python 以缓冲模式打开 stdin、stdout 和 stderror 流。 Python 将读取或写入更大的块,将数据保存在内存中,直到达到阈值。 -u 禁用这些缓冲区。
数据缓冲详情:https://en.wikipedia.org/wiki/Data_buffer
此外,Python 可以解释打开文件上的换行符,并将它们与本机平台换行符(文本模式)相互转换。 -u 选项禁用此转换,允许您处理二进制数据而不必担心\r\n 组合可能会发生什么。相当于使用open()函数打开文件时使用rb或wb模式。
【讨论】: