溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python里fd是什么

發(fā)布時間:2020-07-14 13:44:21 來源:億速云 閱讀:341 作者:Leah 欄目:編程語言

本篇文章為大家展示了python里fd是什么,代碼簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

 文件描述字(file descriptor,fd)是系統(tǒng)中用來唯一記錄當前已經(jīng)打開的文件的標識號,fd是一個整數(shù)。

除了file對象外,Python還提供對fd的操作,對fd的操作更加底層,fd和Python中的file對象是不同的概念。在介紹file對象時已經(jīng)提過,調(diào)用 f.fileno() 可以獲得一個文件對象的fd,也可以在一個已有的 fd 上在封裝一個 file 對象:f = os.fdopen(fd)。

一些fd是一個進程創(chuàng)建時事先分配好的:

0——進程的stdin

1——進程的stdout

2——進程的stderr

Python中的os模塊對于fd提供了如下的方法:

1. 關閉 fd

os.close(fd)

2. 復制fd

os.dup(fd)

返回一個新的fd1,這個fd1復制了參數(shù)fd。

3. 復制fd

os.dup2(fd, fd2)

將 fd 復制到 fd2,如果 fd2 已經(jīng)打開,則首先關閉它。

4. 從 fd 到 file 對象

os.fdopen(fd, mode='r', bufsize=-1)

返回一個封裝了fd的Python file 對象,參數(shù) mode 和 bufsize 和內(nèi)置的open()函數(shù)中的對應參數(shù)含義相同。

5. 從 fd 獲得文件的各種屬性

os.fstat(fd)

返回一個 stat_result 類型的實例 x,和os.stat(path)返回的類型相同,只是這里是通過一個 fd 獲得對應文件的相關屬性。

6. 改變 fd 對應文件的當前位置

os.lseek(fd, pos, how)  

效果同 f.seek(pos, how),參數(shù) how 指定了參照點,一共三種,分別是:os.SEEK_SET == 0 (文件起始)、os.SEEK_CUR == 1(當前位置)和os.SEEK_END == 2(文件末尾).  

沒有類似 f.tell() 這種,可以直接使用 fd 獲得文件當前位置的函數(shù),實際上使用 os.lseek() 就可以自己實現(xiàn)一個,

os.lseek(fd, 0, os.SEEK_CUR)

就可以返回當前fd 對應文件的位置,且不會對原文件造成影響。

7. 打開文件,獲得fd

os.open(file, flags, mode=0777

上述內(nèi)容就是python里fd是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI