Python文件和異常處理小結
文件和異常處理是Python編程中不可或缺的技能。本章將帶你從基礎到進階,徹底掌握文件操作和異常處理的核心知識點,并通過通俗易懂的示例幫助所有人理解。
10.1 從文件中讀取數(shù)據(jù)
10.1.1 讀取整個文件
要讀取文件內容,首先需要打開文件,使用 open() 函數(shù)并指定文件路徑和模式(如 'r' 表示只讀)。例如:
with open('pi_digits.txt', 'r') as file: contents = file.read() print(contents)
使用 with 語句可以自動關閉文件,避免資源泄露。file.read() 會一次性讀取文件全部內容。
10.1.2 文件路徑
- 相對路徑:相對于當前腳本的位置,如 data/pi.txt。
- 絕對路徑:完整的系統(tǒng)路徑,如 /home/user/documents/pi.txt。
在Windows中注意反斜杠轉義(C:\\path\\to\\file)或使用原始字符串(r'C:\path\to\file'`。
10.1.4 逐行讀取與列表存儲
若想逐行處理文件內容,可以使用循環(huán):
with open('pi_digits.txt') as file: lines = file.readlines() # 將各行存入列表 for line in lines: print(line.strip()) # 去除每行末尾的換行符
10.1.6 處理百萬行大文件
直接讀取大文件可能導致內存不足。此時可逐行處理:
with open('big_file.txt') as file: for line in file: process(line) # 每次處理一行,內存友好
10.2 寫入文件
10.2.1 寫入空文件
使用 'w' 模式打開文件,若文件不存在則會創(chuàng)建:
with open('output.txt', 'w') as file: file.write("Hello, World!")
?? 注意:'w' 模式會覆蓋原有內容!
10.2.3 追加內容
用 'a' 模式追加內容到文件末尾:
with open('output.txt', 'a') as file: file.write("\nAppended line.")
10.3 異常處理:讓程序更健壯
10.3.1 處理 ZeroDivisionError
當除數(shù)為零時,程序會崩潰。通過 try-except 捕獲異常:
with open('output.txt', 'a') as file: file.write("\nAppended line.")
10.3.5 處理 FileNotFoundError
讀取不存在的文件時拋出此異常:
filename = 'missing.txt' try: with open(filename) as file: content = file.read() except FileNotFoundError: print(f"文件 {filename} 不存在!")
10.3.6 靜默失敗
若想忽略某些異常,可用 pass:
try: # 可能出錯的代碼 except FileNotFoundError: pass # 靜默處理
10.4 存儲數(shù)據(jù):JSON的妙用
10.4.1 使用 json.dump() 和 json.load()
將數(shù)據(jù)保存為JSON格式:
import json data = {'name': 'Alice', 'age': 30} with open('data.json', 'w') as file: json.dump(data, file) # 寫入文件 # 讀取JSON數(shù)據(jù) with open('data.json') as file: loaded_data = json.load(file) print(loaded_data['name']) # 輸出:Alice
10.4.2 重構代碼
將功能拆分為獨立函數(shù),提升可維護性:
def save_user_data(username): """保存用戶數(shù)據(jù)到JSON文件""" with open('users.json', 'w') as file: json.dump({'username': username}, file)
10.5 小結與最佳實踐
- 文件操作:優(yōu)先使用 with 語句,避免忘記關閉文件。
- 異常處理:精準捕獲特定異常(如 FileNotFoundError),避免籠統(tǒng)的 except。
- 數(shù)據(jù)存儲:JSON適合存儲結構化數(shù)據(jù),且跨平臺兼容。
- 代碼風格:添加清晰的注釋,拆分復雜操作為函數(shù)。
通過本章學習,你將能夠優(yōu)雅地處理文件讀寫、從容應對程序錯誤,并掌握數(shù)據(jù)持久化的核心技巧?,F(xiàn)在,動手寫一段代碼試試吧!
到此這篇關于Python文件和異常詳解的文章就介紹到這了,更多相關Python文件和異常內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python獲取好友地區(qū)分布及好友性別分布情況代碼詳解
利用Python + wxpy 可以快速的查詢自己好友的地區(qū)分布情況,以及好友的性別分布數(shù)量。還可以批量下載好友的頭像,拼接成大圖。感興趣的朋友跟隨小編一起看看吧2019-07-07python 刪除excel表格重復行,數(shù)據(jù)預處理操作
這篇文章主要介紹了python 刪除excel表格重復行,數(shù)據(jù)預處理操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07