最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python讀寫文件(文本/二進(jìn)制)的方法詳解與實(shí)戰(zhàn)

 更新時間:2025年11月06日 08:26:32   作者:程序員愛釣魚  
文件操作是?Python?編程中最常見的基礎(chǔ)技能之一,本文將帶你深入理解?Python?中文件操作的核心方法,例如打開與關(guān)閉文件和讀取與寫入文本文件等,下面我們就來簡單介紹一下吧

文件操作是 Python 編程中最常見的基礎(chǔ)技能之一。 無論是保存日志、讀取配置、還是處理圖片和視頻文件,文件讀寫都是必不可少的能力。

本文將帶你深入理解 Python 中文件操作的核心方法: 打開與關(guān)閉文件 讀取與寫入文本文件 處理二進(jìn)制文件(圖片、音頻等) 使用 with 上下文管理器讓代碼更優(yōu)雅

一、文件操作的基本流程

Python 的文件讀寫操作一般遵循以下 4 步:

  • 打開文件open()
  • 讀/寫文件read() / write()
  • 關(guān)閉文件close()
  • 可選:異常處理或使用上下文管理器

一個典型示例:

# 打開文件(只讀模式)
f = open("example.txt", "r", encoding="utf-8")

# 讀取內(nèi)容
content = f.read()
print(content)

# 關(guān)閉文件
f.close()

二、打開文件:open() 函數(shù)詳解

open() 是文件操作的入口函數(shù):

open(file, mode='r', encoding=None)
參數(shù)含義
file文件路徑
mode打開模式(見下表)
encoding編碼方式(常用 "utf-8")

常見文件打開模式

模式含義是否創(chuàng)建新文件
'r'只讀(默認(rèn))?
'w'只寫(覆蓋原內(nèi)容)?
'a'追加寫入?
'rb'以二進(jìn)制讀取?
'wb'以二進(jìn)制寫入(覆蓋)?
'ab'以二進(jìn)制追加寫入?
'r+'讀寫模式?

三、讀取文本文件內(nèi)容

Python 提供了多種讀取方法,根據(jù)需求靈活選擇。

read()—— 一次性讀取全部內(nèi)容

with open("data.txt", "r", encoding="utf-8") as f:
    content = f.read()
    print(content)

readline()—— 每次讀取一行

with open("data.txt", "r", encoding="utf-8") as f:
    line = f.readline()
    while line:
        print(line.strip())  # 去掉換行符
        line = f.readline()

readlines()—— 一次讀取所有行,返回列表

with open("data.txt", "r", encoding="utf-8") as f:
    lines = f.readlines()
    for line in lines:
        print(line.strip())

推薦使用 with 上下文:會自動關(guān)閉文件,防止資源泄漏。

四、寫入文本文件

寫文件也很簡單:

# 覆蓋寫入(原內(nèi)容會被清空)
with open("output.txt", "w", encoding="utf-8") as f:
    f.write("Python 文件寫入示例\n")
    f.write("第二行內(nèi)容\n")

# 追加寫入
with open("output.txt", "a", encoding="utf-8") as f:
    f.write("這是追加的內(nèi)容\n")

運(yùn)行后你可以在當(dāng)前目錄找到 output.txt 文件,查看寫入結(jié)果。

五、文件路徑與相對路徑

有時我們需要操作不同目錄下的文件:

# 絕對路徑
f = open("/Users/admin/Desktop/data.txt", "r")

# 相對路徑
f = open("subfolder/info.txt", "r")

如果不確定當(dāng)前工作路徑,可以打印:

import os
print(os.getcwd())  # 輸出當(dāng)前工作目錄

六、操作二進(jìn)制文件(圖片、音頻等)

對于非文本文件(如圖片、音頻、視頻等),需要使用 二進(jìn)制模式b)進(jìn)行讀寫。

讀取二進(jìn)制文件

with open("image.jpg", "rb") as f:
    data = f.read()
    print("文件大?。?, len(data), "字節(jié)")

復(fù)制二進(jìn)制文件

with open("image.jpg", "rb") as src:
    with open("copy.jpg", "wb") as dst:
        dst.write(src.read())
print("圖片復(fù)制完成!")

這種方式也常用于備份視頻、音頻、壓縮包等文件。

七、文件異常處理

文件可能不存在、權(quán)限不足、磁盤滿等問題都可能導(dǎo)致程序崩潰。 使用 try...except 可以增強(qiáng)程序穩(wěn)定性:

try:
    with open("data.txt", "r", encoding="utf-8") as f:
        print(f.read())
except FileNotFoundError:
    print("? 文件不存在!")
except PermissionError:
    print("?? 沒有權(quán)限訪問文件!")
else:
    print("? 文件讀取成功。")
finally:
    print("操作結(jié)束。")

八、實(shí)戰(zhàn)案例:統(tǒng)計(jì)文本文件行數(shù)與字?jǐn)?shù)

下面我們結(jié)合所學(xué)知識,完成一個小任務(wù)

需求:

編寫程序,讀取一個文本文件,統(tǒng)計(jì)其中的行數(shù)單詞數(shù)。

def count_file_info(filename):
    try:
        with open(filename, "r", encoding="utf-8") as f:
            lines = f.readlines()
            word_count = sum(len(line.split()) for line in lines)
            print(f"?? 文件行數(shù): {len(lines)}")
            print(f"?? 總單詞數(shù): {word_count}")
    except FileNotFoundError:
        print("? 文件未找到!")

count_file_info("article.txt")

輸出示例:

?? 文件行數(shù): 20
?? 總單詞數(shù): 157

九、總結(jié)與最佳實(shí)踐

技巧建議
使用 with open()自動關(guān)閉文件,推薦使用
指定 encoding='utf-8'避免中文亂碼
模式選擇 'r' / 'w' / 'a'根據(jù)需求靈活選擇
處理二進(jìn)制文件時加 'b'如:'rb'、'wb'
使用異常捕獲提高程序健壯性

結(jié)語

掌握文件讀寫,是 Python 程序員的基本功。 從日志系統(tǒng)、配置文件到圖片批處理,文件操作無處不在。 通過靈活使用 open()、with、read()、write(),你就能輕松完成各種數(shù)據(jù)輸入輸出任務(wù)!

到此這篇關(guān)于Python讀寫文件(文本/二進(jìn)制)的方法詳解與實(shí)戰(zhàn)的文章就介紹到這了,更多相關(guān)Python讀寫文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于python + django + whoosh + jieba 分詞器實(shí)現(xiàn)站內(nèi)檢索功能

    基于python + django + whoosh + jieba 分詞器實(shí)現(xiàn)站內(nèi)檢索功能

    這篇文章主要介紹了基于python + django + whoosh + jieba 分詞器實(shí)現(xiàn)站內(nèi)檢索功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • python爬蟲獲取京東手機(jī)圖片的圖文教程

    python爬蟲獲取京東手機(jī)圖片的圖文教程

    下面小編就為大家分享一篇python爬蟲獲取京東手機(jī)圖片的圖文教程,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • OPENAI?API?微調(diào)?GPT-3?的?Ada?模型

    OPENAI?API?微調(diào)?GPT-3?的?Ada?模型

    這篇文章主要為大家介紹了OPENAI?API?微調(diào)?GPT-3?的?Ada?模型使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • jenkins+python自動化測試持續(xù)集成教程

    jenkins+python自動化測試持續(xù)集成教程

    這篇文章主要介紹了jenkins+python自動化測試持續(xù)集成教程,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • python實(shí)現(xiàn)播放音頻和錄音功能示例代碼

    python實(shí)現(xiàn)播放音頻和錄音功能示例代碼

    這篇文章主要給大家介紹了關(guān)于python播放音頻和錄音的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • 最新評論

    凤庆县| 哈尔滨市| 福建省| 汉川市| 皮山县| 搜索| 鱼台县| 泉州市| 山阳县| 周宁县| 保定市| 衡山县| 金乡县| 曲水县| 前郭尔| 姜堰市| 烟台市| 洛扎县| 高阳县| 长治市| 仁怀市| 贡嘎县| 陇西县| 武功县| 徐汇区| 新巴尔虎左旗| 宝应县| 大洼县| 呼和浩特市| 砚山县| 宝兴县| 麻城市| 鹰潭市| 沈阳市| 鄂伦春自治旗| 青海省| 陇南市| 岳阳市| 浦城县| 阳原县| 堆龙德庆县|