2016-07-05 2 views
1

私はPythonには初めてです。今はテキストファイルを編集する方法(上書きする)を学ぼうとしています。私はそれが動作して番号を変更し、このpython:テキストファイル内の特定の行を編集しています。最初の編集後にファイルが読み込まれません。

with open('badgeNumbers.txt', 'r') as f: 
    lines = f.readlines() 
    self.firstBadge = lines[0].strip() 
    self.secondBadge = lines[1].strip() 
    self.thirdBadge = lines[2].strip() 
    self.fourthBadge = lines[3].strip() 
    self.fifthBadge = lines[4].strip() 
    int(self.thirdBadge) 
    lines[2] = 56 
    out = open('badgeNumbers.txt', 'w') 
    out.writelines(str(lines)) 
    out.close() 

を行うときに

1 
2 
3 
4 
5 

: だから、私はちょうどそのように、これらのint型を格納したテキストファイルを、持っています。 self.secondBadge =行が[1] .strip() はIndexError:私は再びこれを実行したい場合は、後で、それは私にこのエラーが発生します

['1\n', '2\n', 56, '3\n', '4\n', '5'] 

:テキスト内の は、それが次のように保存されるファイル:リストインデックスが範囲外になっています

最初のテキストファイルの編集前と同じことができるようにするだけです。 誰かが助けてくれますか? ありがとう

答えて

1

最初の問題は、56の末尾に改行がないことです。つまり、その行と次の行が同じ行に表示されます。 2番目の問題は、リストの各文字列を別々の行に書き込むのではなく、リストの文字列表現を1行に書き込むことです。 lines[2] = 56lines[2] = "56\n"に変更し、out.writelines(str(lines))out.writelines(lines)

+0

に変更してください。どうもありがとうございます! –

関連する問題