Python讀取文件以及異常處理

Python讀寫文件

Python通常使用open(name[, mode[, buffering]])指定文件名、操作模式、編碼信息等對文件進行讀寫。其中mode指打開文件的模式:

操作模式 含義
r 以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。
w 寫入,會截斷之前寫入的內容
x 寫入,如果文件已經存在會產生異常
a 追加,將文件寫入原有文件的末尾
b 二進制模式
t 文本模式(默認)
+ 更新,既可以讀又可以寫

舉個例子

def main():
    f = open('致橡樹.txt', 'r', encoding='utf-8')
    print(f.read())
    f.close()

if __name__ == '__main__':
    main()

python文件編碼說明:#-*-coding:gbk-*-
在讀寫文件時,通過encoding函數指定編碼

Python異常機制

def main():
    try:
        with open('read.txt','r',encoding='utf-8') as f:
            print(f.read())
    except FileNotFoundError:
        print('無法打開指定文件')
    except LookupError:
        print('指定了未知的編碼')
    except UnicodeDecodeError:
        print('讀文件時解碼錯誤')


if __name__ == '__main__':
    main()

  • FileNotFoundError 無法找到文件
  • LookupError 指定未知的編碼
  • UnicodeDecodeError 讀取文件時沒有按指定的編碼解碼

Python讀寫json文件

json中數據類型與Python中數據類型的對應關係

Json Python
object dict
array list
string str
number(int/real) int/float
true/false True/Flase
null None

Json模塊主要的四個比較重要的函數:

dump 將python對象按照Json格式序列化到文件中
dumps 將python對象處理成Json格式的字符串
load 將文件中的Json數據反序列化成對象
loads 將字符串的內容反序列化成Python對象

序列化(serialization)在計算機科學的數據處理中,是指將數據結構或對象狀態轉換爲可以存儲或傳輸的形式,這樣在需要的時候能夠恢復到原先的狀態,而且通過序列化的數據重新獲取字節時,可以利用這些字節來產生原始對象的副本(拷貝)。與這個過程相反的動作,即從一系列字節中提取數據結構的操作,就是反序列化(deserialization)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章