資料持久化,即對需要使用到的資料進行永久的儲存,常用的有資料庫,檔案等方式。而檔案是最為簡單的一種方式。
而在python中進行檔案的讀寫較為簡單。通過python內建函式open。
操作模式
具體含義
'r'
讀取 (預設)
'w'
寫入(會先截斷之前的內容)
'x'
寫入,如果檔案已經存在會產生異常
'a'
追加,將內容寫入到已有檔案的末尾
'b'
二進位制模式
't'
文字模式(預設)
'+'
更新(既可以讀又可以寫)
讀寫文字檔案
eg
f = open('***.txt','r',encoding ='utf-8')但我們要思考的乙個問題是,假如在對應的位置沒有發現該檔案那麼計算機會怎麼處理該段程式那?print(f.read())
f.close()
毫無疑問會引發異常導致崩潰。那麼為了防止這種現象發生我們就要引入異常的概念。
eg
f=none在python中,我們可以將那些在執行時可能會出現狀況的**放在try:
f=open('***.txt','r',encoding='utf-8')
print(f.read())
except fileexistserror:
print("無法開啟指定的檔案")
except lookuperror:
print("指定了未知的編碼")
except unicodedecodeerror:
print('讀取檔案時解碼錯誤')
finally:
if f:
f.close()
try
**塊中,在try
**塊的後面可以跟上乙個或多個except
來捕獲可能出現的異常狀況。例如在上面讀取檔案的過程中,檔案找不到會引發filenotfounderror
,指定了未知的編碼會引發lookuperror
,而如果讀取檔案時無法按指定方式解碼會引發unicodedecodeerror
,我們在try
後面跟上了三個except
分別處理這三種不同的異常狀況。最後我們使用finally
**塊來關閉開啟的檔案,釋放掉程式中獲取的外部資源,由於finally
塊的**不論程式正常還是異常都會執行到。
那麼除了這種方法以外,我們還可以將讀取的檔案的內容按照行來進行讀取,最後輸出。
#一次讀取整個檔案的內容那麼,如何寫那?with open('***.txt','r',encoding='utf-8') as f:
print(f.read())
#通過for-in迴圈進行讀取
with open('***.txt',mode='r') as f:
for line in f:
print(line,end=' ')
time.sleep(0.5)
基本格式和讀一致,但不再是『r』,而變成『w』了。注意如果需要對檔案內容進行追加式寫入,應該將模式設定為'a'
。如果要寫入的檔案不存在會自動建立檔案而不是引發異常。在這裡不再舉例。同樣對於我們可以把當作乙個二進位制檔案,使用二進位制的方式進行讀寫,這樣就形成了的複製。
json的具體概念不在說明。其大致如同python中字典的樣式以key:value的形式儲存。但又略有不同。
其具體資料型別對照如下:
json
python
object
dict
array
list
string
strnumber (int / real)
int / float
true / false
true / false
null
none
eg
mydict = ,,]json模組主要有四個比較重要的函式,分別是:}try:
with open('data.json','w',encoding='utf-8') as f:
json.dump(mydict,f)
except ioerror as e:
print(e)
print('儲存資料完成')
這裡出現了兩個概念,乙個叫序列化,乙個叫反序列化。自由的百科全書維基百科上對這兩個概念是這樣解釋的:「序列化(serialization)在電腦科學的資料處理中,是指將資料結構或物件狀態轉換為可以儲存或傳輸的形式,這樣在需要的時候能夠恢復到原先的狀態,而且通過序列化的資料重新獲取位元組時,可以利用這些位元組來產生原始物件的副本(拷貝)。與這個過程相反的動作,即從一系列位元組中提取資料結構的操作,就是反序列化(deserialization)」。
python檔案,異常和json
1.開啟檔案 with open digits.txt as file object open 返回乙個表示檔案的物件,將這個物件儲存再後面的變數中contents file object.read print contents.rstrip rstrip刪除空行 2.異常 try print 5 ...
python檔案操作及異常處理,json檔案操作
一 python檔案的簡單操作 1 任何時候使用檔案必須先開啟檔案,一般是用with open進行操作,單單使用open可能某些時候忘了關閉檔案。2 檔案路徑需要明確,當使用多個資料夾進行模組化呼叫的時候,還需要拼接路徑,找到父路徑。3 全部載入與逐行讀取 4 檔案寫入 檔案操作 檔案開啟和讀取方法...
python異常 檔案
try語句 try 塊 可能出現錯誤的語句 except 異常型別 as 異常名 塊 出現錯誤以後的處理 式 except 異常型別 as 異常名 塊 出現錯誤以後的處理 式 except 異常型別 as 異常名 塊 出現錯誤以後的處理 式 else 塊 沒出錯時要執 的語句 finally 塊 是...