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