2017-11-29 18 views
2

私のテキストファイルの内容は次のとおりです。私はPythonで改行を含むテキストファイルの内容を印刷する方法は?

b'5 7 6 6 15\r\n4 3' 

取得

fs.open('path',mode='rb').read() 

行うと

5 7 6 6 15 
4 3 

しかし、私はそれを文字列に比較したいのでoutput

5 7 6 6 15 
4 3 
私のようなこの比較やりたい

:スペースのすべてが維持される改行

if fs.open('path',mode='rb').read() == output 
    print("yes") 

がどのように私は方法でそれを変換する必要がありますか?

PS:出力はjsonを経由している文字列です。

+1

、なぜあなたが読んでくださいバイナリモードのファイルですか? – Tomalak

+0

おそらくドロップバイナリモードで2つの同じオブジェクトを取得します –

+1

バイナリモード 'rb'で読み込んでいると思います。あなたが 'r'を試してみたら? – christinabo

答えて

2

はさらに理由のために除去されず、この余分な\rを、助けないキャリッジリターン(Windowsのテキストファイル)

を(含むとPython 2を使用して、bytesオブジェクトを生成します

bytesオブジェクトとstrオブジェクトを比較しています。これは常にfalseです。

また、output文字列の末尾がの最後の行にあるかどうかは不明です。私は/改行の端をテキストモードとストリップ空白でファイルを開きます(ファイルは、1つが含まれているように見えるが、後悔するより優れた安全ではありません):あなたは、文字列をしたい場合は

with open('path') as f: 
    if f.read().rstrip() == output.rstrip(): 
1

読み取りモードをrbからrに変更します。rbは、バイナリを返します。はテキストを出力します。 Pythonの3、fs.open('path',mode='rb').read()を使用して

関連する問題