2016-10-07 8 views
1

私は、txtファイルを読むことができるpythonスクリプトを書こうとしていますが、readline()には常に\ n出力があります。どのように私は変数からこれを削除できますか?a = open( "file"、 "r"); a.readline()出力なし n

a = open("file", "r") 
b = a.readline() 
a.close() 
+0

文字列の最後の要素を削除してください... – Psytho

答えて

-1

すなわち '\ n' はそうのような文字列の読み取りから最後の文字、削除:

b = b[:-1] 
+0

\ r \ nについてはどうなりますか? – Sergey

+0

OPは2人いるとは言わなかった。 – Chris

+0

これは、最後に改行文字がない場合でも、行の最後の文字を削除します。 I.最後の行 –

4

あなたはすべての行に削除したい場合は

b.rstrip('\n') 

だろうあなたが考えるかもしれません

a.read().splitlines() 

これは、行末の文字を除いた行のリストを表示します。

2

ソリューション、ことができます。

with open("file", "r") as fd: 
    lines = fd.read().splitlines() 

あなたは "の\ r \ n" または "\ n" なし行のリストを取得します。

または、古典的な方法を使用します。あなたは、ファイルを読み込む行ずつ、スペースや改行をドロップ

with open("file", "r") as fd: 
    for line in fd: 
     line = line.strip() 

を。

あなただけの改行を削除する場合

with open("file", "r") as fd: 
    for line in fd: 
     line = line.replace("\r", "").replace("\n", "") 

のEtほら。

注: Python 3の動作は少し異なります。この動作を模倣するには、io.openを使用してください。

io.openの文書を参照してください。

だから、あなたが使用することができます。

with io.open("file", "r", newline=None) as fd: 
    for line in fd: 
     line = line.replace("\n", "") 

改行パラメータがNoneのとき:入力内の行は、で終わる '\ n' は、 '\ R'、または '\ rを\ n' をすることができますこれらは '\ n'に変換されます。

改行制御方法をユニバーサル改行の作品(それが唯一のテキストモードに適用されます)。 \ '、' \ r '、' \ r \ n 'はNone、' '、' \ n 'にすることができます。

入力時に、改行がなしの場合、ユニバーサル改行モードが有効になります。入力の行は '\ n'、 '\ r'または '\ r \ n'で終わることができ、これらは '\ n'に変換されて呼び出し元に返されます。 ''の場合、ユニバーサル改行モードが有効になりますが、行末は翻訳されていない呼び出し元に返されます。他の有効な値があれば、入力行は指定された文字列で終了し、行末は変換されていない呼び出し元に返されます。

関連する問題