Python文件讀取——快速讀取文本內容

一、文件讀取的基礎知識

Python具有很強的文件操作能力,可以對文件進行讀取、寫入、追加等操作。文件讀取是Python操作文件的一項基礎操作,Python有三種文件讀取模式:文本模式(Text mode)、二進制模式(Binary mode)、Unicode模式(Unicode mode)。文本模式一般用於讀寫普通文本文件,二進制模式用於讀寫二進制文件(比如圖片、音頻文件等)。

而在Python中,開始讀取文件之前,我們需要明確以下幾個概念:

文件名:包括文件目錄和文件名,既可以絕對路徑,也可以是相對路徑;

文件打開模式:讀取模式還是覆蓋模式;

字符編碼:文件編碼格式,常用的有UTF-8、ANSI等;

文件讀取開始位置:是否從文件起始位置進行讀取數據。

二、Python快速讀取文本內容方法

在使用Python做數據處理時,經常需要大量讀取文本文件中的數據,一般情況下使用Python內置函數open()函數打開文件,然後進行循環readline()或readlines()方式來進行讀取,但是,這種方法對於大文件處理效率比較低,需要比較長的處理時間。

為此,Python提供了一個快速讀取文本文件內容的方法:使用with open()方式結合yield生成器,這種方法可以快速讀取大型文本文件內容,對於大數據量的處理非常高效。

def read_large_file(file_path):
    with open(file_path, 'r', encoding='utf-8') as f:
        while True:
            data = f.read(100000)
            if not data:
                break
            yield data

代碼解釋:

1、使用with open()方法打開文件,將文件對象存儲在f中;

2、定義一個死循環,代表不斷從文件中讀取數據,每次讀取100000個字符;

3、如果當前讀取的數據為空,則退出循環,否則使用yield返回數據。

三、Python性能測試

為了驗證with open()方式的效率,我們進行了測試。測試方法為:使用with open()方式一次性讀取1.17G的txt文件,並記錄整個過程的時間。測試結果如下:

import time
 
def read_file(file_path):
    try:
        s = time.time()
        with open(file_path, 'r') as f:
            data = f.read()
        e = time.time()
        print('Cost {:.3f} seconds'.format(e - s))
        return data
    except Exception as e:
        print(e)
        return None
 
if __name__ == '__main__':
    read_file('test.txt')

測試結果:Cost 0.523 seconds,可以驗證這種方式讀取文本文件的效率非常高。

四、總結

Python的文件操作是Python的一個非常實用的特性,學好文件讀取操作是Python編程中必不可少的一部分,尤其是在數
據處理和分析需要處理大數據量的時候,使用快速讀取文本文件內容的技巧可以大幅度提高程序的效率,使程序處理起來
更加高效、流暢。

原創文章,作者:SMZHR,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/331340.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
SMZHR的頭像SMZHR
上一篇 2025-01-16 15:46
下一篇 2025-01-16 15:46

相關推薦

發表回復

登錄後才能評論