python基礎5 python檔案處理

2022-04-10 16:21:53 字數 2737 閱讀 6627

python檔案處理

一、檔案處理的流程

開啟檔案,得到檔案控制代碼並賦值給乙個變數

通過控制代碼對檔案進行操作

關閉檔案

二、檔案的操作方法

1、檔案開啟模式格式:

檔案控制代碼 = open('檔案路徑', '模式')

注釋:開啟檔案時,需要指定檔案路徑和以何等方式開啟檔案,開啟後,即可獲取該檔案控制代碼,日後通過此檔案控制代碼對該檔案操作。

2、檔案開啟模式:

r ,唯讀模式【預設模式,檔案必須存在,不存在則丟擲異常】

w,只寫模式【不可讀;不存在則建立;存在則清空內容】

x, 只寫模式【不可讀;不存在則建立,存在則報錯】

a, 追加模式【可讀;   不存在則建立;存在則只追加內容】

b"表示以位元組的方式操作 :rb  或 r+b

wb 或 w+b

xb 或 w+b

ab 或 a+b

補充:r、w、a為開啟檔案的基本模式,對應著唯讀、只寫、追加模式;b、t、+、u這四個字元,與以上的檔案開啟模式組合使用,二進位制模式,文字模式,讀寫模式、     通用換行符,根據實際情況組合使用、

3、檔案內建函式flush

flush原理: 檔案操作是通過軟體將檔案從硬碟讀到記憶體 ,寫入檔案的操作也都是存入記憶體緩衝區buffer(記憶體速度快於硬碟,如果寫入檔案的資料都從記憶體刷到硬碟,記憶體與硬碟的速度延遲會被無限放大,效率變低,所以要刷到硬碟的資料我們統一往記憶體的一小塊空間即buffer中放,一段時間後作業系統會將buffer中資料一次性刷到硬碟).flush的作用是強制將寫入的資料刷到硬碟。

4、open函式詳解

open()語法

格式:open(file[, mode[, buffering[, encoding[, errors[, newline[, closefd=true]]]]]])

open函式有很多的引數,常用的是file,mode和encoding

file檔案位置,需要加引號

mode檔案開啟模式

buffering的可取值有0,1,>1三個,0代表buffer關閉(只適用於二進位制模式),1代表line buffer(只適用於文字模式),>1表示初始化的buffer大小;

encoding表示的是返回的資料採用何種編碼,一般採用utf8或者gbk;

errors的取值一般有strict,ignore,當取strict的時候,字元編碼出現問題的時候,會報錯,當取ignore的時候,編碼出現問題,程式會忽略而過,繼續執行下面的程式。

newline可以取的值有none, \n, \r, 」, 『\r\n',用於區分換行符,但是這個引數只對文字模式有效;

closefd的取值,是與傳入的檔案引數有關,預設情況下為true,傳入的file引數為檔案的檔名,取值為false的時候,file只能是檔案描述符,什麼是檔案描述符,就是乙個非負整數,在unix核心的系統中,開啟乙個檔案,便會返回乙個檔案描述符。

5、檔案操作引數

.read([size])         #size為讀取的長度,以byte為單位

.readline([size])       #讀一行,如果定義了size,有可能返回的只是一行的一部分

.readlines([size])       #把檔案每一行作為乙個list的乙個成員,並返回這個list。其實它的內部是通過迴圈呼叫readline()來實現的。如果提供size引數,size是表示讀取內容的總長,也就是說可能唯讀到檔案的一部分。

.write(str)         #把str寫到檔案中,write()並不會在str後加上乙個換行符

.writelines(seq)        #把seq的內容全部寫到檔案中(多行一次性寫入)。這個函式也只是忠實地寫入,不會在每行後面加上任何東西。

.close()            #關閉檔案。python會在乙個檔案不用後自動關閉檔案,不過這一功能沒***,最好還是養成自己關閉的習慣。  如果乙個檔案在關閉後還對其進行操作會產生valueerror

.flush()            #把緩衝區的內容寫入硬碟

.isatty()            #檔案是否是乙個終端裝置檔案(unix系統中的)

.tell()             #返回檔案操作標記的當前位置,以檔案的開頭為原點

.next()                #返回下一行,並將檔案操作標記位移到下一行。把乙個file用於for … in file這樣的語句時,就是呼叫next()函式來實現遍歷的。

.seek(offset[,whence])#將檔案打操作標記移到offset的位置。這個offset一般是相對於檔案的開頭來計算的,一般為正數。但如果提供了whence引數就不一定了,whence可以為0表示從頭開始計算,1表示以當前位置為原點計算。2表示以檔案末尾為原點進行計算。需要注意,如果檔案以a或a+的模式開啟,每次進行寫操作時,檔案操作標記會自動返回到檔案末尾。

.truncate([size])        #把檔案裁成規定的大小,預設的是裁到當前檔案操作標記的位置。如果size比檔案的大小還要大,依據系統的不同可能是不改變檔案,也可能是用0把檔案補到相應的大小,也可能是以一些隨機的內容加上去

6、上下文管理例項。

with open('a.txt','w') as f:

pass

with open('a.txt','r') as read_f,open('b.txt','w') as write_f:

data=read_f.read()

write_f.write(data)

Python基礎5 Python字典

字典的基本操作 建立字典 字典中儲存的是鍵值對,鍵和值用 分割,每個鍵值對之間用逗號分割,所有元素用 括起來 字典中元素的鍵必須唯一且不可變 examdict print examdict 訪問字典中的值 print examdict name tina 新增字典元素 examdict age 30...

5 Python基礎 字典練習

定義字典,存放使用者姓名和密碼 user dic 判斷是否成功登陸 login false 判斷使用者是否選擇退出 user exit false while not login if user exit true break print user dic print 1 登入 print 2 註冊...

5,Python函式基礎知識

函式的引數與返回值 lambda表示式 在python中,一切都是物件,函式 function 也不例外。函式其實就是一台機器,能夠把我們放進去的材料轉化成想要的物品。其實我們對函式並不陌生。我們平時用到的print input 等後面帶括號的語句都是函式。python中除了內建函式和庫函式之外,還...