書き込みと読み込みを同時に行う

投稿者: | 2022-10-18

モード’w’でファイルをopenし、書き込み後に中身をみるため読み込もうとするとエラーになる
しかし読み込みのためにモードを’r’にしてopenしなおすのも面倒
書き込みと読み込みを同時に行う場合は、モード’w+’をつかう
ただし、書き込み後はファイルの位置が最後になっているため、何も表示されないので
f.seek(0)のようにファイルの位置を先頭に戻すこと

s = """
AAA
BBB
CCC
"""

with open('test.txt', 'w') as f:
  f.write(s)
  print(f.read())

# エラーになる
UnsupportedOperation: not readable

with open('test.txt', 'w+') as f:
  f.write(s)
  f.seek(0)
  print(f.read())