python:在哪里需要真正的内置文件对象?
作者:互联网
从urllib.urlopen()上的python docs,谈论函数在成功时返回的类文件对象:
(It is not a built-in file object, however, so it can’t be used at those few places where a true built-in file object is required.)
那几个需要真正内置文件对象的地方是什么?
注意:这纯粹是出于好奇……这里没有实际问题需要解决.
解决方法:
正如其他答案所指出的那样,实际上并没有特别需要文件对象的地方,但是有些接口需要真正的操作系统级文件描述符,像StringIO这样的文件类对象无法提供.
os模块有几种直接在文件描述符上操作的方法,select和mmap模块也是如此.一些更高级别的模块依赖于底层的模块,因此在处理不支持fileno()方法的类文件对象时可能会遇到一些限制.
我不知道有关这些限制的任何一致的文档(除了显然接受数字文件描述符而不是对象的API之外).这更像是“尝试并看看它是否有效”.如果事情不起作用,那么这就要留在你的脑海里去检查可能的罪魁祸首(特别是如果任何相关的错误消息中出现“没有属性名为’fileno’”或“无效文件描述符”的短语).
标签:python,file,interface,standard-library,api 来源: https://codeday.me/bug/20190521/1148532.html