gpt4 book ai didi

python - 无法将 fdopen 与 mkstemp 一起使用

转载 作者:行者123 更新时间:2023-11-30 23:24:26 24 4
gpt4 key购买 nike

我无法从 mkstemp 返回的句柄写入由 fdopen 打开为 rw 的文件。

>>> import tempfile
>>> import os
>>> a = tempfile.mkstemp()
>>> b = os.fdopen(a[0], "rw")
>>> b
<open file '<fdopen>', mode 'rw' at 0x7f81ea669f60>
>>> b.write("foo")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: [Errno 9] Bad file descriptor
>>>

奇怪的是,我可以从打开的文件中读取rw:

>>> g = tempfile.mkstemp()
>>> h = os.fdopen(g[0], "rw")
>>> h.read()
''

如果我以一种模式或另一种模式打开文件,那么一切都很好:

>>> c = tempfile.mkstemp()
>>> d = os.fdopen(c[0], "r")
>>> d
<open file '<fdopen>', mode 'r' at 0x2380540>
>>> d.read()
''
>>> e = tempfile.mkstemp()
>>> f = os.fdopen(e[0], "w")
>>> f.write("foo")
>>>

最佳答案

rw 不是有效模式。

如果您想以更新模式(读/写)打开文件,请使用w+r+模式。

(参见open documentation:os.fdopenmode参数与open相同。)

关于python - 无法将 fdopen 与 mkstemp 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23452361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com