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

Python文件和異常處理小結(jié)

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

文件和異常處理是Python編程中不可或缺的技能。本章將帶你從基礎(chǔ)到進(jìn)階,徹底掌握文件操作和異常處理的核心知識(shí)點(diǎn),并通過通俗易懂的示例幫助所有人理解。

10.1 從文件中讀取數(shù)據(jù)

10.1.1 讀取整個(gè)文件

要讀取文件內(nèi)容,首先需要打開文件,使用 open() 函數(shù)并指定文件路徑和模式(如 'r' 表示只讀)。例如:

with open('pi_digits.txt', 'r') as file:
    contents = file.read()
print(contents)

使用 with 語句可以自動(dòng)關(guān)閉文件,避免資源泄露。file.read() 會(huì)一次性讀取文件全部?jī)?nèi)容。

10.1.2 文件路徑

- 相對(duì)路徑:相對(duì)于當(dāng)前腳本的位置,如 data/pi.txt。

- 絕對(duì)路徑:完整的系統(tǒng)路徑,如 /home/user/documents/pi.txt。

在Windows中注意反斜杠轉(zhuǎn)義(C:\\path\\to\\file)或使用原始字符串(r'C:\path\to\file'`。

10.1.4 逐行讀取與列表存儲(chǔ)

若想逐行處理文件內(nèi)容,可以使用循環(huán):

with open('pi_digits.txt') as file:
    lines = file.readlines()  # 將各行存入列表
for line in lines:
    print(line.strip())       # 去除每行末尾的換行符

10.1.6 處理百萬行大文件

直接讀取大文件可能導(dǎo)致內(nèi)存不足。此時(shí)可逐行處理:

with open('big_file.txt') as file:
    for line in file:
        process(line)  # 每次處理一行,內(nèi)存友好

10.2 寫入文件

10.2.1 寫入空文件

使用 'w' 模式打開文件,若文件不存在則會(huì)創(chuàng)建:

with open('output.txt', 'w') as file:
    file.write("Hello, World!")

?? 注意:'w' 模式會(huì)覆蓋原有內(nèi)容!

10.2.3 追加內(nèi)容

用 'a' 模式追加內(nèi)容到文件末尾:

with open('output.txt', 'a') as file:
    file.write("\nAppended line.")

10.3 異常處理:讓程序更健壯

10.3.1 處理 ZeroDivisionError

當(dāng)除數(shù)為零時(shí),程序會(huì)崩潰。通過 try-except 捕獲異常:

with open('output.txt', 'a') as file:
    file.write("\nAppended line.")

10.3.5 處理 FileNotFoundError

讀取不存在的文件時(shí)拋出此異常:

filename = 'missing.txt'
try:
    with open(filename) as file:
        content = file.read()
except FileNotFoundError:
    print(f"文件 {filename} 不存在!")

10.3.6 靜默失敗

若想忽略某些異常,可用 pass:

try:
    # 可能出錯(cuò)的代碼
except FileNotFoundError:
    pass  # 靜默處理

10.4 存儲(chǔ)數(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 重構(gòu)代碼

將功能拆分為獨(dú)立函數(shù),提升可維護(hù)性:

def save_user_data(username):
    """保存用戶數(shù)據(jù)到JSON文件"""
    with open('users.json', 'w') as file:
        json.dump({'username': username}, file)

10.5 小結(jié)與最佳實(shí)踐

- 文件操作:優(yōu)先使用 with 語句,避免忘記關(guān)閉文件。

- 異常處理:精準(zhǔn)捕獲特定異常(如 FileNotFoundError),避免籠統(tǒng)的 except。

- 數(shù)據(jù)存儲(chǔ):JSON適合存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù),且跨平臺(tái)兼容。

- 代碼風(fēng)格:添加清晰的注釋,拆分復(fù)雜操作為函數(shù)。

通過本章學(xué)習(xí),你將能夠優(yōu)雅地處理文件讀寫、從容應(yīng)對(duì)程序錯(cuò)誤,并掌握數(shù)據(jù)持久化的核心技巧。現(xiàn)在,動(dòng)手寫一段代碼試試吧!

到此這篇關(guān)于Python文件和異常詳解的文章就介紹到這了,更多相關(guān)Python文件和異常內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中日志模塊logging的使用技巧和應(yīng)用詳解

    Python中日志模塊logging的使用技巧和應(yīng)用詳解

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

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

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

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

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

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

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

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

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

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

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

    python添加模塊搜索路徑方法

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

    Django自定義排序ORM示例詳解

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

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

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

    Pygame Display顯示模塊的使用方法

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

最新評(píng)論