HOWTO · Python

Python を使用してファイルに行ごとに書き込む方法

Python を使用してファイルに行ごとに書き込む方法を学ぶ

このページの内容

Python を使って行単位でファイルに書き込むことができる多くのタスクの 1つです。この記事では、このタスクを達成するための主要な方法について、明確で丁寧にコメントされた Python コードの例と詳細な説明を交えて紹介します。

方法に入る前に、何をやるのか、なぜそれをするのかを理解しましょう。Python でファイルに行単位で書き込むことは、複雑に聞こえるかもしれませんが、実際には Python の組み込み関数のおかげで非常に簡単です。このタスクは、後で使用したり分析したりするために Python プログラムの出力を保存したいときや、メモリを節約するために 1 行ずつ処理する必要がある大規模なデータセットを扱うときに重要です。

方法 1: write() を使用する

Python で行単位でファイルに書き込むための最初で最も簡単な方法は、write() 関数を使用することです。この関数を使うと、ファイルに 1 行を追加することができます。

# First, open the file in write mode
file = open('example.txt', 'w')

# Then, write a line to the file
file.write('This is an example line.\n')

# Always remember to close the file when you're done
file.close()

この例では、文字列の最後の\n が新しい行を作成するため、次回 write() を使用すると、新しいテキストが新しい行に書き込まれます。書き込みが完了したら file.close() を使ってファイルを閉じることを忘れないことが重要です。これにより、行った変更が保存され、リソースが解放されます。

方法 2: writelines() を使用する

Python で行単位でファイルに書き込む別の方法は、writelines() 関数を使うことです。この関数は、ファイルに書き込む行のリストがある場合に特に便利です。

# Open the file in write mode
file = open('example.txt', 'w')

# Create a list of lines to write to the file
lines = ['First line.\n', 'Second line.\n', 'Third line.\n']

# Write the lines to the file
file.writelines(lines)

# Close the file
file.close()

この例では、リスト lines 内の各文字列がファイルの 1 行を表しています。writelines() 関数は、各文字列を行単位でファイルに書き込みます。

方法 3: with open を使用する

Python の with open 文は、行単位でファイルに書き込むプロセスを簡素化する優れた方法です。書き込みが終わると自動的にファイルが閉じられるため、file.close() を呼び出すことを覚えておく必要がありません。

# Open the file in write mode
with open('example.txt', 'w') as file:
    # Write a line to the file
    file.write('This is an example line.\n')

この例では、with open 文がファイルを開き、その後のインデントされたコード行がファイルに書き込みます。それらのコード行が実行されると、ファイルは自動的に閉じられます。

結論

Python で行単位でファイルに書き込むことは、Python の組み込み関数のおかげで簡単な作業です。write()、writelines()、または with open 文を選択することで、プログラムの出力を保存したり、大規模なデータセットを 1 行ずつ処理したりするために必要なツールを手に入れることができます。

よくある質問

  1. open() 関数の’w’は何を意味しますか?
    ‘w’は’write’(書き込み)を意味します。これはファイルを書き込みモードで開き、ファイルにテキストを追加できるようにします。

  2. ファイルを閉じるのを忘れるとどうなりますか?
    ファイルが閉じられないと、変更が保存されない場合があり、リソースが解放されません。特に大きなファイルを扱うときにメモリの問題が発生する可能性があります。

  3. write() 関数を使って複数の行を一度に書き込むことはできますか?
    はい、文字列に\n を含めて新しい行を作成することで、一度に複数の行を書き込むことができます。ただし、行のリストに対しては、writelines() 関数の方が適しています。