1. ホーム
  2. パイソン

[解決済み】pythonのファイルモード "w+"に困惑。

2022-04-16 19:09:23

質問

から doc ,

モード 'r+'、'w+'、'a+' は更新のためにファイルを開きます (ただし 'w+' はファイルを切り詰めます)。バイナリファイルとテキストファイルを区別するシステムでは、 バイナリモードでファイルを開くためにモードに'b'を追加する。

そして ここで

w+ : 書き込みと読み込みの両方のためにファイルを開きます。ファイルが存在する場合は上書きします。ファイルが存在しない場合は,読み書きのためのファイルを新規に作成します.

で開いているファイルを読むにはどうすればいいのでしょうか? w+ ?

解決方法は?

でファイルを開くとします。 with ステートメントを使用する必要があります。そして、ファイルから読み込むには、次のようなことをします。

with open('somefile.txt', 'w+') as f:
    # Note that f has now been truncated to 0 bytes, so you'll only
    # be able to read data that you write after this point
    f.write('somedata\n')
    f.seek(0)  # Important: return to the top of the file before reading, otherwise you'll just read an empty string
    data = f.read() # Returns 'somedata\n'

注意 f.seek(0) -- これを忘れると f.read() の呼び出しは、ファイルの終わりから読み込もうとし、空の文字列を返します。