簡單語法支撐不起 python,檔案操作卻是重中之重。這節我們來探索一下 python 中內建函式 open(),讓你從此愛上檔案操作。
一、簡介
python open()
函式用於開啟乙個檔案,建立乙個file
物件,相關的方法才可以呼叫它進行讀寫。
二、open 檔案操作
先來乙個示例直觀感受一下吧,我們開啟乙個檔案,並讀取檔案內容:
123456
import sysresult =
with open(r'{}/readme.md'.format(sys.path[0]), 'r') as fp:
for line in fp.readlines():
**很簡單,先建立了乙個空陣列,然後按行讀取檔案內容,並存入陣列。
存完後,又覺得無聊,我要把讀到的內容輸出到指定的檔案中:
1234
import syswith open('{}/jartto.txt'.format(sys.path[0]),'w') as f:
f.writelines(result);
開啟 jartto.txt 檔案,將上一步讀取到的 result 結果,寫入其中。
從頭到尾我們貌似做了無用功,但是你卻對檔案讀寫操作有了整體的認識。我們繼續,是時候解開python
中open()
函式的面紗了!
三、函式語法
要真正理解open
方法,我們需要做一些功課:
1
open(name[, mode[, buffering]])
引數說明:
關於mode
這裡多說一句:最常用的模式可能是 r 和 w
引數說明:
name 和 mode 都不難理解,上文示例已經應用到了,那 buffering 是什麼鬼?
四、關於 buffering
這裡有個問題,為什麼要寫入緩衝區,buffering 是不是可有可無?
在網上查到乙個關於緩衝區作用的描述:
fileinputstream/fileoutputstream 每次呼叫 read()/write() 都會觸發乙個 io 操作。
bufferedinputstream/bufferedoutputsteam 呼叫 read()/write() 並不會每次都觸發乙個 io 操作,只是寫到內部的buffer裡面,而只有內部的 buffer 滿了或者呼叫 flush() 才會觸發 io 操作。
io 操作越少,效能越好。
作業系統不僅會將硬碟上的檔案讀到記憶體作為快取使用,也會在記憶體開闢另外一段空間給記憶體的資料做快取處理。意義何在?
為了管理,也為了效率。
擴充套件閱讀:
五、file 物件方法
open()
函式從來都不是單用的,它與檔案操作密不可分,所以請不要離開,再了解一下file
物件方法?
f.close() 關閉檔案
六、file() 與 open()
兩者都能夠開啟檔案,對檔案進行操作,也具有相似的用法和引數。但是,這兩種檔案開啟方式卻有著本質的區別:
OPEN檔案操作 Python
open檔案操作 python f open file name 讀寫模式 讀寫模式型別 f.read size 返回一行 file.readline 返回包含size行的列表,size 未指定則返回全部行 file.readline size 通過迭代器訪問 for line in f print...
python 讀寫檔案 open
io 檔案讀寫 讀 f open users panbingqing desktop test a.rtf 讀模式,不可做任何修改 將整個檔案內容讀取為乙個字串值,使用read 方法 f1 f.read or use readlines 將整個檔案讀取為列表 f2 f.readlines type ...
python 開啟檔案 open
三 檔案讀寫定位操作 讀 f.read size 如果沒有size即f.read 一次性讀取檔案全部內容,返回型別str 如果有size即f.read 50 讀取最多的位元組內容 1.檔案很小,可一次性讀取,檔案較大,超過記憶體大小,內容爆掉 2.檔案過大,可用f.read size x為每次最多讀...