2016-03-29 2 views
2

でそれらを得た:

テキストLINE1

テキストLINE2を

テキスト行3

テキスト行のn

私は、このように取得する必要があり、各ラインの開始と終了にchar型の$を挿入しようとしています:

$テキストLINE1を$

$テキストLINE2の$

$ text line3 $

です。

$テキスト行のn $

私のコードは次のとおりです。

Read_data = open("finename.txt","r") 
text_line = Read_data.readline() 

while text_line: 
    text_line = '$' + text_line + '$' 
    Write_data = open('newfile.txt', 'a') 
    Write_data.write(text_line) 
    text_line = Read_data.readline() 
    Write_data.close() 

私はこのようになった出力:

$テキストLINE1

$$テキストLINE2

$$テキスト行3

$$テキスト行のn

$

任意のアイデアなぜそれを得ますか?

答えて

4

を使用すると、各行の\nの文字を削除する必要があることを覚えておいてください。このポストを確認してくださいPython Add string to each line in a file。 これは、(ループの外のファイルを開くの提案以下)あなたのコードのために働く必要があります:あなたは違うでしょうwhileループの代わりに、forループとループ、だってため

Read_data = open("finename.txt","r") 
Write_data = open('newfile.txt', 'a') 

for text_line in Read_data.readline(): 
    text_line = '$' + text_line.strip() + '$\n' 
    Write_data.write(text_line) 

Write_data.close() 
+0

あなたは各行の文字を取り除くことについて訂正しますが、forループを使用すると意図した出力を得ることができませんでしたので、whileループでこれに答えるつもりです。 – Alsphere

+0

@Ahmedに気づいてよかったですが、私は動作すると思っていた修正でコードをコピーしましたが、正しいものがあれば良いでしょう;) –

+1

'readline()'を取り除いて ' Read_data'のtext_lineに対しては、コードはもっと厄介なものになるでしょう。 – Matthias

1

ループの外側で両方のファイルを開き、使用可能な入力行をループする必要があります。このような何か:

Read_data = open("finename.txt","r") 
Write_data = open('newfile.txt', 'a') 

for text_line in Read_data.readlines(): 
    formatted_text_line = '$' + text_line + '$' 
    Write_data.write(formatted_text_line) 

Write_data.close() 

また、あなたが望む結果を得るために書かれた行に改行を追加する必要があります。

formatted_text_line = '$' + text_line + '$\n' 
+1

'.readline()'は1行だけを返します。最初の行の各文字を繰り返します。しかし、あなたが '.readlines()'を意味していたとしても、各行の末尾にある改行文字は、最初はダブルドル記号を、最後は何も表示させません。 – zondo

+0

@srowlandあなたの答えは役に立ちません – Alsphere

+0

私は@ zondoをやった - ありがとう、あなたは改行について正しいです - 私はその部分を逃していました:) – srowland

2

あなたの問題はtextは末尾に改行文字を持っているということです、そしてあなたは、の後に$ を入れてください。試してみてください:

text = '$' + text[:-1] + '$\n' 
+0

あなたは今すぐ動作します。 – Alsphere

1

私が使用して@Vladir Parradoクルスを補正しています出力:

Read_data = open("finename.txt","r") 
Write_data = open('newfile.txt', 'a') 
text_line = Read_data.readline() 
while text_line: 
    text_line = '$' + text_line.strip() + '$\n' 
    Write_data.write(text_line) 
    text_line = Read_data.readline() 
Write_data.close() 
関連する問題