Python
では、ファイルが存在しない場合に新規作成しつつ読み書きしたい場合、open()
関数のモードにw+
やa+
を指定します。
w+
モード
w+
モードを使うと、ファイルが存在しない場合に作成され、読み書きが可能です。ただし、既存のファイルがあればその内容は上書きされます。
with open('myfile.txt', 'w+') as f:
f.write('New content')
a+
モード
a+
モードは、ファイルが存在しない場合に作成し、既存ファイルがある場合は末尾に追記します。
with open('myfile.txt', 'a+') as f:
f.write('Appended content')
ディレクトリが存在しない場合
ファイルのパスに指定したディレクトリが存在しない場合、事前にos.makedirs()
を使ってディレクトリを作成する必要があります。
import os
os.makedirs('path/to/dir', exist_ok=True)
これにより、存在しないディレクトリも自動で作成されます。
まとめ
w+
モードはファイルを作成または上書きします。a+
モードはファイルを作成し、既存ファイルには追記します。- ディレクトリが存在しない場合は
os.makedirs()
で作成しましょう。