私はPythonでテキストファイルを書き直そうとしていました。ファイルに入り、各行を取得し、その行に追加の文字列を追加してから、新しく追加された行をテキストファイルに書き直します。私が抱えている問題は、この新しく作成されたテキストファイルが正しくフォーマットされていないことです。ファイルには行が含まれ、各行にはコンマで区切られた3つの数字が含まれます。私のファイルが次のようになっている場合:
57.88, 58.45, 45.31
57.88, 58.45, 45.31
57.88, 58.45, 45.31
そして、行に文字「a」を追加したいので、ファイルは次のようになります。
57.88, 58.45, 45.31, a
57.88, 58.45, 45.31, a
57.88, 58.45, 45.31, a
代わりに、このようなファイル形式(emacsとgeditの両方で開いた場合)
57.88, 58.45, 45.31
,a
57.88, 58.45, 45.31
,a
57.88, 58.45, 45,31
,a
興味深いことに、ファイルの形式に関係なく、行数は同じ(3)です。私はこれについて本当に混乱していて、いくらかイライラしています。以下は、ファイルの書き換えに使用しているコードです。私のPythonスキルは実際に必要に応じて習得されているので、聞いたことのない明らかなPython関数を使用する必要があるかもしれません。基本的に、ファイルパスが存在することを確認したら、以下に示す書き換えサブルーチンを呼び出します。
def getLines(filePath):
move(filePath, filePath+"~")
destination = open(filePath, "w")
source = open(filePath+"~", "r")
for line in source:
destination.write(line.strip("\n") + ",a\n"))
source.close()
destination.close()