Pythonでファイルを追記モードで開く
この記事では、Pythonでファイルを追記モードで開いてファイルにデータを追記する方法について説明します。ファイルが存在しない場合は新規作成し、存在する場合はファイルの末尾にデータを書き込みます。
目次
追記モードでファイルを開く
Pythonでは、`open()` 関数の`mode`引数に `'a'` を指定することで、ファイルを追記モードで開くことができます。`'a'` はappendの略です。ファイルが存在しない場合は新規作成され、存在する場合はファイルポインタがファイルの末尾に配置されます。
file = open('my_file.txt', 'a')
このように`open()`関数でファイルをオープンすると、ファイルオブジェクト`file`が返されます。このオブジェクトを使ってファイルに書き込みを行うことができます。書き込みが完了したら、`file.close()`メソッドでファイルを閉じることが重要です。
ファイルを閉じるのを忘れると、データが失われたり、ファイルが破損したりする可能性があります。`with`文を使用すると、ファイルを自動的に閉じることができるので、安全で簡潔なコードになります。
with open('my_file.txt', 'a') as file:
file.write('This text will be appended.\n')
この`with`文を使う例では、`with`ブロックを抜けた時点でファイルが自動的に閉じられます。`file.close()`を明示的に呼ぶ必要はありません。
ファイルが存在しない場合の動作
追記モード(`'a'`)でファイルを開こうとした際に、ファイルが存在しない場合、Pythonは自動的にそのファイルを作成します。そのため、`'a'`モードは新規ファイルを作成し、そこにデータを書き込む場合にも使用できます。
サンプルコード
以下は、`my_file.txt` というファイルにテキストを追記するサンプルコードです。ファイルが存在しない場合は新規に作成されます。
with open('my_file.txt', 'a') as f:
f.write('Hello, world!\n')
f.write('This is the second line.\n')
# ファイルの内容を確認する(確認用)
with open('my_file.txt', 'r') as f:
print(f.read())
このコードを実行すると、`my_file.txt`というファイルにテキストが追記されます。ファイルが存在しない場合は、新しくファイルが作成され、テキストが書き込まれます。`print(f.read())`の部分は、ファイルに実際に追記されたことを確認するためのものです。実行後、`my_file.txt`ファイルの中身を確認してください。
注意: \n は改行コードを表します。これがないと、追記されるテキストが1行につながってしまいます。
エラー処理
ファイル操作は例外が発生する可能性があるため、`try...except`ブロックを使用してエラーを処理することをお勧めします。例えば、ファイルへの書き込み権限がない場合などは`PermissionError`が発生します。
try:
with open('my_file.txt', 'a') as f:
f.write('This might cause an error.\n')
except PermissionError:
print('ファイルへの書き込み権限がありません')
except Exception as e:
print(f'エラーが発生しました: {e}')
関連記事
- Pythonでファイルを開く・閉じる(open, close)
- Pythonでファイルに書き込む(write, writelines)
- Pythonでファイルを読み込む(read, readline, readlines)
- Pythonでファイルの上書き・削除
- Pythonでファイル・ディレクトリの存在確認(os.path.exists, os.path.isfile, os.path.isdir)
- Pythonでファイル・ディレクトリの操作(os, shutil, pathlib)
- Pythonでファイルをバイナリモードで読み書き
- Pythonでファイルのエンコーディングを指定して読み書き
- Pythonでwith文によるリソース管理
- Pythonでtry-except文で例外を捕捉