我正在尝试将mkstemp与Python 3一起使用:
Python 3.2.3 (default, Jun 25 2012, 23:10:56)
[GCC 4.7.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from tempfile import mkstemp
>>> mkstemp()
(3, '/tmp/tmp080316')
根据documentation,元组的第一个元素应该是文件句柄。事实上,它是一个int。如何获得一个正确的file对象?
我知道最好的方法是使用
tempfile.NamedTemporaryFile
,正如您在@tordek的答案中看到的那样。但是,如果您有一个来自底层操作系统的原始FD,您可以这样做,使其成为一个文件对象:
这在Python 3中有效
在
mktemp
的文档中,您可以看到一个如何使用NamedTemporaryFile
的示例:这提供了与mkstemp相同的行为,但返回一个文件对象。
int表示操作系统级别的文件句柄。实际上,我需要的是一个更高级的文件对象。要制作一个,请使用:
相关问题 更多 >
编程相关推荐