Python 筆記3 Open 檔案操作

2021-10-07 02:21:09 字數 1683 閱讀 2814

簡單語法支撐不起 python,檔案操作卻是重中之重。這節我們來探索一下 python 中內建函式 open(),讓你從此愛上檔案操作。

一、簡介

python open()函式用於開啟乙個檔案,建立乙個file物件,相關的方法才可以呼叫它進行讀寫。

二、open 檔案操作

先來乙個示例直觀感受一下吧,我們開啟乙個檔案,並讀取檔案內容:

123

456

import sys

result =

with open(r'{}/readme.md'.format(sys.path[0]), 'r') as fp:

for line in fp.readlines():

**很簡單,先建立了乙個空陣列,然後按行讀取檔案內容,並存入陣列。

存完後,又覺得無聊,我要把讀到的內容輸出到指定的檔案中:

123

4

import sys

with open('{}/jartto.txt'.format(sys.path[0]),'w') as f:

f.writelines(result);

開啟 jartto.txt 檔案,將上一步讀取到的 result 結果,寫入其中。

從頭到尾我們貌似做了無用功,但是你卻對檔案讀寫操作有了整體的認識。我們繼續,是時候解開pythonopen()函式的面紗了!

三、函式語法

要真正理解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為每次最多讀...