Pythonは、ファイルの読み書きや管理を容易に行うための強力な機能を提供します。この記事では、ファイルへの書き込みと追加について詳しく説明します。
ファイルへの書き込み
open関数を使用して「w」モードでファイルに書き込むことができます。主なメソッドは以下の通りです:
write():内容を書き込むflush():内容をディスクに即時反映する
注意点:
- 「w」モードは、ファイルが存在しない場合に新しいファイルを作成します。
- ファイルが存在する場合、「w」モードは既存の内容を削除します。
以下は具体的な例です。
# ファイルを開く(存在しない場合は自動的に作成される)
file = open("C:/example.txt", "w", encoding="UTF-8")
file.write("こんにちは、世界!") # コンテンツをバッファに一時保存
上記コードでは、データが実際のファイルに書き込まれる前にメモリ上のバッファに保持されます。これを防ぐには、flush()メソッドを使用します。
# バッファからデータを強制的にファイルに書き込む
file.flush()
または、ファイルを閉じると自動的にバッファの内容がファイルに書き込まれます。
# ファイルを閉じる
file.close()
プログラム終了時に、オペレーティングシステムが自動的に未書き込みのデータをファイルに反映することもあります。
ファイルへの追加
「a」モードを使用すると、ファイルの末尾にコンテンツを追加できます。これもwrite()メソッドを使用します。
注意点:
- 「a」モードは、ファイルが存在しない場合に新しいファイルを作成します。
- ファイルが存在する場合、既存の内容に追加されます。
以下は、行を追加する例です。
# ファイルを開き、末尾に追加
file = open("C:/example.txt", "a", encoding="UTF-8")
file.write("Pythonは素晴らしい言語です。\n")
file.write("学ぶ価値があります。\n")
file.close()
実践例:账单処理
次の例では、特定の条件に基づいて账单データをフィルタリングし、新しいファイルに書き出します。
# 元の账单ファイルを読み込む
with open("C:/bill.txt", "r", encoding="UTF-8") as read_file, \
open("C:/bill.txt.bak", "w", encoding="UTF-8") as write_file:
for line in read_file:
data = line.strip().split(",")
if len(data) > 4 and data[4] == "テスト":
continue # 条件に一致しない行はスキップ
write_file.write(line)
上記コードは、元の账单ファイルから「テスト」とマークされた行を除外し、結果をbill.txt.bakという新しいファイルに保存します。