1. ホーム
  2. python

[解決済み] mkstemp() ファイルへの Python 書き込み

2022-02-09 12:06:43

質問

を使用してtmpファイルを作成しています。

from tempfile import mkstemp

私はこのファイルに書き込もうとしています。

tmp_file = mkstemp()
file = open(tmp_file, 'w')
file.write('TEST\n')

確かに、ファイルを閉じて、ちゃんとやっているのですが、tmpファイルをcatしようとすると、空のままです。基本的なことのようですが、なぜうまくいかないのかわかりません、何か説明がありますか?

解決方法は?

mkstemp() は、ファイルディスクリプタとパスのタプルを返します。問題は、間違ったパスに書き込んでいることだと思います。(以下のようなパスに書き込んでいる '(5, "/some/path")' .) あなたのコードはこのようになるはずです。

from tempfile import mkstemp

fd, path = mkstemp()

# use a context manager to open the file at that path and close it again
with open(path, 'w') as f:
    f.write('TEST\n')

# close the file descriptor
os.close(fd)