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()で作成しましょう。