首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python上的io.open()和os.open()有什么不同?

Python上的io.open()和os.open()有什么不同?
EN

Stack Overflow用户
提问于 2011-08-28 15:03:07
回答 7查看 20.1K关注 0票数 40

我意识到我一直在使用的open()函数是io.open()的别名,从os导入*会使它黯然失色。

通过io模块和os模块打开文件有什么不同?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-08-28 15:10:38

io.open()是文件I/O的首选高级接口。它将操作系统级别的文件描述符包装在一个对象中,您可以使用该对象以Pythonic方式访问文件。

os.open()只是一个低级POSIX syscall的包装器。它采用较少的符号(和更多的POSIX-y)参数,并返回表示打开的文件的文件描述符(一个数字)。它不返回文件对象;返回值将没有read()write()方法。

os.open() documentation

file此函数用于低级I/O。正常使用时,请使用内置函数open(),该函数返回带有read()write()方法(以及更多方法)的“

对象”。

票数 32
EN

Stack Overflow用户

发布于 2011-08-28 15:11:27

绝对的一切:

  • os.open()将文件名作为字符串,将文件模式作为属性的逐位掩码,并以描述文件权限位的可选参数作为参数,以integer.
  • io.open()的形式返回文件描述符,将文件名作为字符串或文件描述符作为整数,将文件模式作为字符串,将描述文件编码、使用的缓冲、如何处理编码错误和换行符的可选参数,以及在关闭文件时是否关闭了底层FD,并返回io.IOBase.

的某个后代

票数 8
EN

Stack Overflow用户

发布于 2011-08-28 15:10:56

os.openopen() from C in Unix非常相似。您不太可能想要使用它,除非您正在做一些更低级的事情。它为您提供了一个实际的文件描述符(例如,一个数字,而不是一个对象)。

io.open是您的基本Python open(),也是您想要一直使用的all。

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

https://stackoverflow.com/questions/7219511

复制
相关文章

相似问题

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