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中除了內建函式和庫函式之外,還...