如何在python中打印带换行符的文本文件内容?
我的文本文件的内容是:如何在python中打印带换行符的文本文件内容?,python,Python,我的文本文件的内容是: 5 7 6 6 15 4 3 当我这样做的时候 fs.open('path',mode='rb').read() 我明白了 但因为我希望它与字符串输出进行比较 5 7 6 6 15 4 3 我想做这样的比较: if fs.open('path',mode='rb').read() == output print("yes") 我应该如何转换它,使其以换行符的方式保留所有内容 PS:输出就是我通过json获得的字符串。将读取模式从rb更改为r:rb返回二进制
5 7 6 6 15
4 3
当我这样做的时候
fs.open('path',mode='rb').read()
我明白了
但因为我希望它与字符串输出进行比较
5 7 6 6 15
4 3
我想做这样的比较:
if fs.open('path',mode='rb').read() == output
print("yes")
我应该如何转换它,使其以换行符的方式保留所有内容
PS:输出就是我通过json获得的字符串。将读取模式从
rb
更改为r
:rb
返回二进制,r
输出文本。使用Python 3,fs.open('path',mode='rb')。read()
生成一个bytes
对象,并且包含回车符(windows文本文件)
(使用Python2也没有帮助,因为这个额外的\r
由于二进制模式而没有被删除)
您正在比较bytes
对象和str
对象:这总是错误的
此外,还不清楚输出
字符串的最后一行是否有行终止符。我将以文本模式打开文件,并在结尾处删除空格/换行符(文件似乎不包含行终止符,但比“对不起”更安全):
当你想要一个字符串时,为什么要以二进制模式读取文件?也许放弃二进制模式,你会得到两个相同的对象。我认为这是因为你用二进制模式“rb”读取。如果你用“r”怎么办?不清楚最后一行是否包含换行符。这可能会导致比较失败。最后一行包含换行符,好的,伙计们,我试试r模式,让你们看看我知道,非常感谢你。
if fs.open('path',mode='rb').read() == output
print("yes")
with open('path') as f:
if f.read().rstrip() == output.rstrip():