python 将文件描述符包装成文件对象
生活随笔
收集整理的這篇文章主要介紹了
python 将文件描述符包装成文件对象
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
有一個對應(yīng)于操作系統(tǒng)上一個已打開的I/O 通道(比如文件、管道、套接字等)的整型文件描述符,你想將它包裝成一個更高層的Python 文件對象。
一個文件描述符和一個打開的普通文件是不一樣的。文件描述符僅僅是一個由操作系統(tǒng)指定的整數(shù),用來指代某個系統(tǒng)的I/O 通道。如果你碰巧有這么一個文件描述符,你可以通過使用open() 函數(shù)來將其包裝為一個Python 的文件對象。僅僅只需要使用這個整數(shù)值的文件描述符作為第一個參數(shù)來代替文件名即可
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' import os fd = os.open('somefile.txt', os.O_WRONLY j os.O_CREAT) # Turn into a proper file f = open(fd, 'wt') f.write('hello world\n') f.close()當(dāng)高層的文件對象被關(guān)閉或者破壞的時候,底層的文件描述符也會被關(guān)閉。如果這個并不是你想要的結(jié)果,你可以給open() 函數(shù)傳遞一個可選的colsefd=False
f = open(fd, 'wt', closefd=False)盡管可以將一個已存在的文件描述符包裝成一個正常的文件對象,但是要注意的是并不是所有的文件模式都被支持,并且某些類型的文件描述符可能會有副作用(特別是涉及到錯誤處理、文件結(jié)尾條件等等的時候)。在不同的操作系統(tǒng)上這種行為也是不一
樣,特別的,上面的例子都不能在非Unix 系統(tǒng)上運(yùn)行。說了這么多,意思就是要充分測試自己的實(shí)現(xiàn)代碼,確保它能按照期望工作。
總結(jié)
以上是生活随笔為你收集整理的python 将文件描述符包装成文件对象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python集合list,tuple,d
- 下一篇: python 查询文本文件的层次