2016-04-07 4 views
0

私はそれがとても似て項目のリストを持っている.txtファイルがあります:Pythonでテキストファイルを読むときに、テキストファイルの形式を維持するにはどうすればよいですか?

BLAH 
ONE 
TWO 
THREE 
FOUR 

を私は現在、その.txtファイルを読み込み、テキストの行をプリントアウトするためにはPythonを使用しています。私が取り組んでいる問題は、印刷された行に改行文字が\nとカンマが一緒に表示されていることです。

BLAH \n, ONE \n, TWO \n, THREE \n, FOUR 

私は、少なくとも、不要な文字を取り除くの試みで.replace("\n,", "")を使用して試してみたが、それは動作していないようです:それはので、私は.txtファイルからデータを印刷するときのように見えます。どのようにして.txtファイルからPythonコマンドを使って同じフォーマットを維持することができますか?

file = open("plstemp.txt", "r") 
     abc=str(file.readlines()) 
     wow = abc.replace("[", "").replace("]", "").replace("'", "") 
     print(wow) 
     file.close() 

私の所望の出力は次のとおりです。:

疑わたよう
BLAH 
ONE 
TWO 
THREE 
FOUR 
+0

実際には、文字列として読み込んだときにフォーマットを維持しているのは、まさにそれらがあなたに示すものなのだからです。しかし、その見た目からコンマはあなたがおそらくreadlines()を使って、各行を項目としてリストに入れることを示しています。コードを表示し、コードから期待される正確な出力を提供してください。 – idjaw

+0

私はあなたの要求された情報で投稿を編集しました。 – Patr3xion

答えて

2

、あなたはあなたのリストが表示されますreadlines使用している要求することで

は、ここに私のコードです。リスト内の各項目はファイルの行です。あなたは '['を完全に置き換える必要はありません。ここに実際にリストがあることを理解する必要があります。

ので、file.readlines()をやって、あなたが持っているでしょう:

['BLAH\n', 'ONE\n', 'TWO\n', 'THREE\n', 'FOUR\n'] 

をあなたの代わりにfile.read()を使用し、その結果をプリントアウトした場合:心に留めておいてください

BLAH 
ONE 
TWO 
THREE 
FOUR 

、あなたはまだ「\持って'n'は実際にはにはが必要です。なぜなら、 '\ n'は実際には「改行」を意味する特殊文字なので、上記の出力が必要です。

file = open("plstemp.txt") 
abc=file.read() 
file.close() 
print(abc) 
+0

パーフェクト、ありがとうございました。私はPythonの初心者ですが、これは私にとっては非常に便利です。 – Patr3xion

+0

@ Patr3xion大歓迎です。がんばろう。 – idjaw

0

readlinesリターンのライン:(あなたはそれがデフォルトで「R」であるため、「R」を指定する必要はありません)

だから、あなたのコードを再書き込みするために、あなたは、単に行うことができファイルをリストとして作成しますが、リストに文字列に変換するstr関数をリストに適用します。これは、不要な[]を取得する理由です。

あなたは、単にファイル全体で読みたい場合、あなたはそれのpythonのビルトインタイプであるため、また、変数名としてfileを使用しないよう、次の

f = open("plstemp.txt", "r") 
wow = f.read() 
f.close() 
print(wow) 

を行うことができます。

0

は、[OK]を、それはforループがリストを返しますaswellとして、今私はあなたのコード:)

readlines()を参照してくださいすることを明確です。あなたは私がうまくいかないと思うリストにstr()という文字列を使用しています。 私はidjawの答えが正しいと仮定します。

file = open("plstemp.txt", "r") 
     abc=file.readlines() 
     wow = ",".join(abc) #joining a list into a string by commas as a separator 
     print(wow) 
     file.close() 
+0

非常に注意してください。あなたの出力は '' BLAH \ n、ONE \ n、TWO \ n、THREE \ n、FOUR''のようになります。 – idjaw

関連する問題