Python學習之旅 讀書筆記系列
Day 8
《Python編程從入門到實踐》
第10章 文件和異常
知識點
- 文件的處理(書本本章內容主要針對文本文件)
- 讀取文件
- with open(‘文件名’) as file_object:
- 變量 = file_object.read()
- print(變量.rstrip())
- with 方便在不需要訪問時關閉文件,防止異常丟失或受損
- read 方法是讀取全部內容
- rstrip 刪除末尾空行 (注意文件尾 + print本身,會有兩空行)
- '文件名' 可指定相對/絕對文件路徑(\)
- 得到的結果均為字符串,如做數值使用,需轉換: int()或float()
- 寫入文件
- with open(‘文件名’,實參2) as file_object:
- 實參2有4種類型,默認為‘r’
- 'r'(讀取),'w'(寫入),'a'(附加),'r+'(讀取和寫入)
- 文件名不存在時,會自動創建
- 當模式為‘w’時,如果文件已存在,則先清空(要特別小心)
- 'a'附件模式時,寫入行自動添加到末尾,不覆蓋之前內容
- Python只能把字符串寫入文本,如果是數值,需轉換:str()
- 實參2有4種類型,默認為‘r’
- 寫入多行 : 末尾添加換行符 ‘\n’(制表符,空格同理)
- with open(‘文件名’,實參2) as file_object:
- 處理異常
- try-except-else
- try 要放在執行語句前
- except 當出現錯誤時,執行后面的
- 兩種錯誤: ZeroDivisionError (除0), FileNotFoundError(找不到文件)
- 要學會預測可能出現的錯誤
- 可用語句提醒輸入 / pass 什么都不做(還充當占位符)
- else 后接正常運行語句
- 只要程序依賴外部因素,如輸入等,就可以能出現異常
- try-except-else
- 分析文本(獲取單詞數,只是如何過濾重復的詞匯未提及?)
- 方法: 文件名.split() 計算多少個單詞
- 以空格為分隔符拆分以便統計
- 存儲數據:模塊json
- JSON(JaveScript Object Notation),最初由JaveScript開發
- 如果不存儲,程序停止用戶信息將丟失
- 先 import json
- josn.dump(實參1,實參2) 存儲數據
- 實參1:數據
- 實參2:文件名
- 待確定多次使用時是追加還是覆蓋?
- josn.load(實參1)
- 實參1:文件名
- 重構
- 把代碼劃分成一系列完成具體工作的函數
- def 函數() 針對不同功能切分開
其他
- 感受
- 文件讀取時,未提及其他文件格式,如excel,后續看另一本書了解
- 要留意Python只能把字符串寫如文本,這個要記得按需事先調整格式
- 在寫代碼時,面對有輸入的部分,要盡可能多想可能出現的錯誤
- 如果還不確定錯誤應對方式,可用pass作為占位符后續再豐富
- 分析單詞時,如何過濾重復值,這個題目自己要進一步思考完成
- 重構的練習只能靠多練習才會有感覺和提高