You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Python的tempfile.mkstemp()返回整数而非文件句柄?

关于tempfile.mkstemp返回值的疑问解答

你完全没有理解误区哦!问题的核心是对「操作系统级句柄」的具体形式认知差异~

关键解释:

  • 文档里提到的「与os.open()返回的类型一致」,而os.open()本身返回的就是整数类型的文件描述符(File Descriptor),这正是操作系统层面用来标识和跟踪打开文件的句柄,和Python内置open()函数返回的文件对象(比如<_io.TextIOWrapper name='xxx' mode='r' encoding='UTF-8'>)不是同一个概念。
  • 你在交互中看到的temp[0]是整数,这完全符合文档描述——这个整数就是操作系统级的文件句柄,系统通过它来定位对应的打开文件。
  • 如果需要把这个整数句柄转换成Python常用的文件对象,可以使用os.fdopen()方法,示例代码如下:
    import tempfile
    import os
    
    temp = tempfile.mkstemp(suffix='.html')
    file_obj = os.fdopen(temp[0], 'w')  # 将文件描述符转为Python文件对象
    file_obj.write('Hello, temp file!')
    file_obj.close()
    

内容的提问来源于stack exchange,提问作者Kurt Peek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:21:59