【问题标题】:When running the 'python' command, why would I use the -u flag?运行“python”命令时,为什么要使用 -u 标志?
【发布时间】:2020-06-24 12:42:08
【问题描述】:

这是手册上的内容,但我不明白:

强制标准输入、标准输出和标准错误完全无缓冲。在系统上 在重要的地方,还将标准输入、标准输出和标准错误置于二进制模式。 请注意,xreadlines()、readlines() 中有内部缓冲 和文件对象迭代器(“for line in sys.stdin”)不是 受此选项影响。要解决此问题,您需要 在“while 1:”循环中使用“sys.stdin.readline()”。

【问题讨论】:

    标签: python shell


    【解决方案1】:

    Python 以缓冲模式打开 stdinstdoutstderror 流。 Python 将读取或写入更大的块,将数据保存在内存中,直到达到阈值。 -u 禁用这些缓冲区。

    数据缓冲详情:https://en.wikipedia.org/wiki/Data_buffer

    此外,Python 可以解释打开文件上的换行符,并将它们与本机平台换行符(文本模式)相互转换。 -u 选项禁用此转换,允许您处理二进制数据而不必担心\r\n 组合可能会发生什么。相当于使用open()函数打开文件时使用rbwb模式。

    【讨论】:

      猜你喜欢
      • 2016-04-26
      • 1970-01-01
      • 2016-09-10
      • 1970-01-01
      • 2018-03-14
      • 1970-01-01
      • 2013-11-13
      相关资源
      最近更新 更多