本篇文章為大家展示了python里fd是什么,代碼簡明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
金華網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計(jì)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)成立與2013年到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
文件描述字(file descriptor,fd)是系統(tǒng)中用來唯一記錄當(dāng)前已經(jīng)打開的文件的標(biāo)識(shí)號(hào),fd是一個(gè)整數(shù)。
除了file對(duì)象外,Python還提供對(duì)fd的操作,對(duì)fd的操作更加底層,fd和Python中的file對(duì)象是不同的概念。在介紹file對(duì)象時(shí)已經(jīng)提過,調(diào)用 f.fileno() 可以獲得一個(gè)文件對(duì)象的fd,也可以在一個(gè)已有的 fd 上在封裝一個(gè) file 對(duì)象:f = os.fdopen(fd)。
一些fd是一個(gè)進(jìn)程創(chuàng)建時(shí)事先分配好的:
0——進(jìn)程的stdin
1——進(jìn)程的stdout
2——進(jìn)程的stderr
Python中的os模塊對(duì)于fd提供了如下的方法:
1. 關(guān)閉 fd
os.close(fd)
2. 復(fù)制fd
os.dup(fd)
返回一個(gè)新的fd1,這個(gè)fd1復(fù)制了參數(shù)fd。
3. 復(fù)制fd
os.dup2(fd, fd2)
將 fd 復(fù)制到 fd2,如果 fd2 已經(jīng)打開,則首先關(guān)閉它。
4. 從 fd 到 file 對(duì)象
os.fdopen(fd, mode='r', bufsize=-1)
返回一個(gè)封裝了fd的Python file 對(duì)象,參數(shù) mode 和 bufsize 和內(nèi)置的open()函數(shù)中的對(duì)應(yīng)參數(shù)含義相同。
5. 從 fd 獲得文件的各種屬性
os.fstat(fd)
返回一個(gè) stat_result 類型的實(shí)例 x,和os.stat(path)返回的類型相同,只是這里是通過一個(gè) fd 獲得對(duì)應(yīng)文件的相關(guān)屬性。
6. 改變 fd 對(duì)應(yīng)文件的當(dāng)前位置
os.lseek(fd, pos, how)
效果同 f.seek(pos, how),參數(shù) how 指定了參照點(diǎn),一共三種,分別是:os.SEEK_SET == 0 (文件起始)、os.SEEK_CUR == 1(當(dāng)前位置)和os.SEEK_END == 2(文件末尾).
沒有類似 f.tell() 這種,可以直接使用 fd 獲得文件當(dāng)前位置的函數(shù),實(shí)際上使用 os.lseek() 就可以自己實(shí)現(xiàn)一個(gè),
os.lseek(fd, 0, os.SEEK_CUR)
就可以返回當(dāng)前fd 對(duì)應(yīng)文件的位置,且不會(huì)對(duì)原文件造成影響。
7. 打開文件,獲得fd
os.open(file, flags, mode=0777
上述內(nèi)容就是python里fd是什么,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
當(dāng)前名稱:python里fd是什么
轉(zhuǎn)載注明:http://aaarwkj.com/article10/iijddo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、企業(yè)網(wǎng)站制作、品牌網(wǎng)站建設(shè)、域名注冊(cè)、App設(shè)計(jì)、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)