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