首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能与mkstemp一起使用fdopen

不能与mkstemp一起使用fdopen
EN

Stack Overflow用户
提问于 2014-05-04 03:42:57
回答 1查看 525关注 0票数 1

我无法从rw返回的句柄中写入fdopenfdopen形式打开的文件。

代码语言:javascript
复制
>>> 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文件中读取

代码语言:javascript
复制
>>> g = tempfile.mkstemp()
>>> h = os.fdopen(g[0], "rw")
>>> h.read()
''

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

代码语言:javascript
复制
>>> 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")
>>> 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-04 03:48:01

rw不是有效的模式。

如果要使用updaing模式(读/写)打开文件,请使用w+r+模式。

(参见 documentationos.fdopenmode参数与open相同。)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23452361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档