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

Python讀取TXT文件的全攻略

 更新時間:2026年03月06日 09:41:55   作者:普通網(wǎng)友  
本文詳細介紹了Python讀取txt文件的多種方法,包括基礎的open()函數(shù)和文件打開模式,以及進階的處理大文件、不同編碼的txt文件和二進制模式讀取的方法,同時,還提供了常見問題的解決方法和選擇合適方法的建議,需要的朋友可以參考下

Python 讀取 txt 文件是最基礎的文件操作之一,核心通過內(nèi)置的open()函數(shù)實現(xiàn),配合不同的讀取方法可適配小文件、大文件、按行讀取、按字節(jié)讀取等不同場景。本文從基礎到進階,結(jié)合實例講解所有常用方法。

一、核心基礎:open()函數(shù)與文件打開模式

1.open()函數(shù)的基本參數(shù)

open(file, mode='r', encoding=None)
參數(shù)說明
file文件路徑(相對路徑:相對于當前 Python 腳本的路徑;絕對路徑:完整路徑)
mode打開模式(默認r,只讀模式),常用模式見下表
encoding文件編碼格式(推薦顯式指定,如utf-8、gbk,避免亂碼)

2. 常用文件打開模式

模式作用
r只讀模式(默認),文件不存在則報錯
r+讀寫模式,文件不存在則報錯
rb二進制只讀模式(用于非文本文件,如圖片、視頻,無需指定 encoding)
a追加模式,文件不存在則創(chuàng)建
w寫入模式,文件不存在則創(chuàng)建,存在則清空原有內(nèi)容

3. 關鍵:使用with語句(推薦)

with語句會自動關閉文件,避免因忘記調(diào)用close()導致的資源泄漏,是 Python 讀取文件的最佳實踐。

# 基本結(jié)構(gòu)
with open("test.txt", "r", encoding="utf-8") as f:
    # 讀取文件的操作
    content = f.read()

二、常用讀取方法(按場景分類)

先準備一個測試文件test.txt,內(nèi)容如下:

Python讀取txt文件
這是第2行內(nèi)容
Hello World!
這是最后一行

場景 1:小文件 → 一次性讀取整個文件(read())

適合文件體積小(幾 KB~ 幾十 KB),需要一次性獲取所有內(nèi)容的場景。

# 讀取整個文件
with open("test.txt", "r", encoding="utf-8") as f:
    content = f.read()  # 返回字符串,包含所有內(nèi)容(包括換行符\n)
    print("文件全部內(nèi)容:")
    print(content)

輸出結(jié)果

文件全部內(nèi)容:
Python讀取txt文件
這是第2行內(nèi)容
Hello World!
這是最后一行

場景 2:中等文件 → 讀取所有行到列表(readlines())

將文件的每一行作為列表的一個元素,方便后續(xù)通過索引、切片處理行數(shù)據(jù)。

with open("test.txt", "r", encoding="utf-8") as f:
    lines = f.readlines()  # 返回列表,每個元素是一行內(nèi)容(包含換行符\n)
    print("文件的行列表:", lines)
    print("第2行內(nèi)容:", lines[1].strip())  # strip()去掉換行符和首尾空格

輸出結(jié)果

文件的行列表: ['Python讀取txt文件\n', '這是第2行內(nèi)容\n', 'Hello World!\n', '這是最后一行']
第2行內(nèi)容: 這是第2行內(nèi)容

場景 3:任意文件 → 逐行讀取(for循環(huán)遍歷文件對象,推薦)

這是最高效、最內(nèi)存友好的方式,逐行讀取,不一次性加載整個文件,適合所有場景(尤其是大文件)。

with open("test.txt", "r", encoding="utf-8") as f:
    print("逐行讀取文件:")
    for line in f:  # 直接遍歷文件對象,每次返回一行
        print(line.strip())  # strip()去除換行符和多余空格

輸出結(jié)果

逐行讀取文件:
Python讀取txt文件
這是第2行內(nèi)容
Hello World!
這是最后一行

場景 4:精準控制 → 按字節(jié) / 字符讀?。╮ead(n))

read(n)可指定讀取的字符數(shù)(文本模式)或字節(jié)數(shù)(二進制模式),適合需要分段讀取的場景。

with open("test.txt", "r", encoding="utf-8") as f:
    content1 = f.read(6)  # 讀取前6個字符
    print("前6個字符:", content1)
    content2 = f.read(3)  # 從當前位置繼續(xù)讀取3個字符
    print("后續(xù)3個字符:", content2)

輸出結(jié)果

前6個字符:Python
后續(xù)3個字符:讀取t

場景 5:逐行讀?。╮eadline())

每次調(diào)用readline()讀取一行,直到返回空字符串(文件結(jié)束),適合需要手動控制讀取進度的場景。

with open("test.txt", "r", encoding="utf-8") as f:
    line1 = f.readline()  # 讀取第一行
    line2 = f.readline()  # 讀取第二行
    print("第一行:", line1.strip())
    print("第二行:", line2.strip())

輸出結(jié)果

第一行:Python讀取txt文件
第二行:這是第2行內(nèi)容

三、進階場景處理

1. 處理大文件(GB 級)

大文件的核心是逐行讀取(避免一次性加載到內(nèi)存),使用for循環(huán)遍歷文件對象即可:

# 讀取GB級大文件,逐行處理
with open("big_file.txt", "r", encoding="utf-8") as f:
    for line in f:
        # 處理每一行(如統(tǒng)計行數(shù)、提取關鍵信息)
        pass

2. 處理不同編碼的 txt 文件

Windows 系統(tǒng)下的 txt 文件常使用gbk/gb2312編碼,Linux/Mac 下多為utf-8,若編碼不匹配會報UnicodeDecodeError,需顯式指定編碼:

# 讀取GBK編碼的文件
with open("gbk_file.txt", "r", encoding="gbk") as f:
    content = f.read()
    print(content)

# 讀取帶BOM的UTF-8文件(Windows記事本保存的UTF-8文件常帶BOM)
with open("utf8_bom_file.txt", "r", encoding="utf-8-sig") as f:
    content = f.read()
    print(content)

3. 二進制模式讀?。╮b)

用于讀取非文本文件(如圖片、視頻),或需要處理字節(jié)數(shù)據(jù)的場景:

with open("test.txt", "rb") as f:
    content = f.read()  # 返回字節(jié)串(bytes)
    print("二進制內(nèi)容:", content)
    # 轉(zhuǎn)換為字符串(需指定編碼)
    print("轉(zhuǎn)換為字符串:", content.decode("utf-8"))

四、常見問題與解決方法

問題 1:FileNotFoundError(文件不存在)

  • 解決:檢查文件路徑是否正確(相對路徑是否相對于當前腳本,絕對路徑是否完整)。

問題 2:UnicodeDecodeError(編碼錯誤)

  • 解決:顯式指定正確的編碼(如utf-8gbk、utf-8-sig)。

問題 3:讀取的內(nèi)容有多余的換行符 / 空格

  • 解決:使用strip()(去除首尾空格和換行符)、rstrip("\n")(僅去除換行符)。

問題 4:文件權限不足(PermissionError)

  • 解決:檢查文件的讀寫權限,確保當前用戶有讀取權限。

五、總結(jié):方法選擇建議

場景推薦方法優(yōu)點
小文件(<100KB)read() 一次性讀取簡單快捷
中等文件(100KB~1MB)readlines() 讀取到列表方便后續(xù)行處理
大文件(>1MB)for循環(huán)遍歷文件對象(逐行讀?。?/td>內(nèi)存友好、效率高
精準分段讀取read(n)靈活控制讀取量

核心原則:優(yōu)先使用with語句,避免資源泄漏;大文件必用逐行讀取,避免內(nèi)存溢出。掌握這些方法,就能處理所有 txt 文件的讀取需求。

以上就是Python讀取TXT文件的全攻略的詳細內(nèi)容,更多關于Python讀取TXT文件的資料請關注腳本之家其它相關文章!

相關文章

最新評論

云和县| 西充县| 东乌| 瑞丽市| 乾安县| 巩义市| 仁怀市| 刚察县| 吉林市| 南涧| 兰考县| 南丹县| 鹰潭市| 昆山市| 白沙| 湘潭县| 珲春市| 宝清县| 山丹县| 崇阳县| 阿拉善右旗| 兰州市| 东平县| 墨竹工卡县| 鸡西市| 临邑县| 永年县| 洞口县| 富民县| 宁陕县| 鄂尔多斯市| 克什克腾旗| 吉首市| 宾阳县| 玉树县| 永胜县| 合阳县| 运城市| 安西县| 大理市| 枝江市|