1.文件讀寫實現(xiàn)原理
文件讀寫就是一種常見的IO操作。那么根據(jù)上面的描述,可以推斷python也應該封裝操作系統(tǒng)的底層接口,直接提供了文件讀寫相關的操作方法。事實上,也確實如此,而且Java、PHP等其他語言也是。
那么我們要操作的對象是什么呢?我們又如何獲取要操作的對象呢?
由于操作I/O的能力是由操作系統(tǒng)提供的,且現(xiàn)代操作系統(tǒng)不允許普通程序直接操作磁盤,所以讀寫文件時需要請求操作系統(tǒng)打開一個對象(通常被稱為文件描述符--filedescriptor,簡稱fd),這就是我們在程序中要操作的文件對象。
通常高級編程語言中會提供一個內置的函數(shù),通過接收"文件路徑"以及“文件打開模式”等參數(shù)來打開一個文件對象,并返回該文件對象的文件描述符。因此通過這個函數(shù)我們就可以獲取要操作的文件對象了。這個內置函數(shù)在Python中叫open(),在PHP中叫fopen(),
2.文件讀寫操作步驟
不同的編程語言讀寫文件的操作步驟大體都是一樣的,都分為以下幾個步驟:
1)打開文件,獲取文件描述符
2)操作文件描述符--讀/寫
3)關閉文件
只是不同的編程語言提供的讀寫文件的api是不一樣的,有些提供的功能比較豐富,有些比較簡陋。
需要注意的是:文件讀寫操作完成后,應該及時關閉。一方面,文件對象會占用操作系統(tǒng)的資源;另外一方面,操作系統(tǒng)對同一時間能打開的文件描述符的數(shù)量是有限制的,在Linux操作系統(tǒng)上可以通過ulimit-n來查看這個顯示數(shù)量。如果不及時關閉文件,還可能會造成數(shù)據(jù)丟失。因為我將數(shù)據(jù)寫入文件時,操作系統(tǒng)不會立刻把數(shù)據(jù)寫入磁盤,而是先把數(shù)據(jù)放到內存緩沖區(qū)異步寫入磁盤。當調用close方法時,操作系統(tǒng)會保證把沒有寫入磁盤的數(shù)據(jù)全部寫到磁盤上,否則可能會丟失數(shù)據(jù)。
以上內容為大家介紹了python文件讀寫實現(xiàn)原理與操作步驟,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。