欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python文件和異常處理小結

 更新時間:2025年03月05日 09:33:09   作者:Alfadi聯(lián)盟 蕭瑤  
本章詳細介紹了Python中的文件操作和異常處理,包括文件的讀取和寫入、異常的捕獲和處理,以及JSON數(shù)據(jù)的存儲和重構代碼的最佳實踐,通過示例和解釋,幫助讀者掌握這些關鍵技能,感興趣的朋友一起看看吧

文件和異常處理是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中日志模塊logging的使用技巧和應用詳解

    Python中日志模塊logging的使用技巧和應用詳解

    在Python開發(fā)中,日志記錄是一個非常重要的環(huán)節(jié),它不僅有助于開發(fā)者追蹤程序的執(zhí)行流程,還能在出現(xiàn)問題時提供關鍵信息,幫助快速定位并解決問題,本文將結合實際案例,詳細介紹logging模塊的基礎用法和高級特性,需要的朋友可以參考下
    2024-08-08
  • 用表格幫你了解Python數(shù)據(jù)類型

    用表格幫你了解Python數(shù)據(jù)類型

    這篇文章主要為大家介紹了Python數(shù)據(jù)類型,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助<BR>
    2022-01-01
  • pytz格式化北京時間多出6分鐘問題的解決方法

    pytz格式化北京時間多出6分鐘問題的解決方法

    這篇文章主要給大家介紹了關于pytz格式化北京時間多出6分鐘問題的解決方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Python具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06
  • 淺談Pytorch中autograd的若干(踩坑)總結

    淺談Pytorch中autograd的若干(踩坑)總結

    這篇文章主要介紹了Pytorch中autograd的若干(踩坑)總結,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • Python獲取好友地區(qū)分布及好友性別分布情況代碼詳解

    Python獲取好友地區(qū)分布及好友性別分布情況代碼詳解

    利用Python + wxpy 可以快速的查詢自己好友的地區(qū)分布情況,以及好友的性別分布數(shù)量。還可以批量下載好友的頭像,拼接成大圖。感興趣的朋友跟隨小編一起看看吧
    2019-07-07
  • 深入淺析Python數(shù)據(jù)分析的過程記錄

    深入淺析Python數(shù)據(jù)分析的過程記錄

    我們先利用?Jupyter?Notebook?來進行分析,然后,在得到成果以后,利用?Pycharm?來進行完整的程序設計,對Python數(shù)據(jù)分析的過程記錄感興趣的朋友一起看看吧
    2022-01-01
  • python添加模塊搜索路徑方法

    python添加模塊搜索路徑方法

    下面小編就為大家?guī)硪黄猵ython添加模塊搜索路徑方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Django自定義排序ORM示例詳解

    Django自定義排序ORM示例詳解

    這篇文章主要為大家介紹了Django自定義排序ORM示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • python 刪除excel表格重復行,數(shù)據(jù)預處理操作

    python 刪除excel表格重復行,數(shù)據(jù)預處理操作

    這篇文章主要介紹了python 刪除excel表格重復行,數(shù)據(jù)預處理操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Pygame Display顯示模塊的使用方法

    Pygame Display顯示模塊的使用方法

    本文主要介紹了Pygame Display顯示模塊的使用方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11

最新評論