从python中已打开的文件中读取两个换行符类型

时间:2012-10-04 20:23:30

标签: python io stream newline readline

我正在使用subprocess.popen来运行命令并获取stdout。

恰好,程序(mplayer)使用eol类型\n\r\r来自终端控制字符。因此,我最终得到的输出是规则线,其中散布着很长的行,其中\r被忽略。

我知道如果我自己打开了一个文件,我可以设置换行符类型。但是,我从popen那里得到了stdout所以我无法控制它。

我看了一下python 2.7源码和我的图像我可以某种方式使用TextIOWrapper来尊重两种eol类型。但是我不太确定我需要传递给它。我知道我需要传递构造函数某种缓冲区,但我不知道如何从已经打开的文件中获取缓冲区。

总而言之,如果给定已打开的文件/流,我在readline()\n中的\r怎么办?

1 个答案:

答案 0 :(得分:2)

Popen.subprocess(如果方便功能对您来说是Popen.check_output),请设置universal_newlines参数,默认情况下为False,但设置为{{1将为您提供将所有换行变体转换为True所需的行为。