Python - 文件讀取read()、readline()、readlines()區別


前言

讀取文件的三個方法:read()、readline()、readlines()。均可接受一個方法參數用以限制每次讀取的數據量,但通常不使用

 

read()

優點:讀取整個文件,將文件內容放到一個字符串變量中。

劣勢:如果文件非常大,尤其是大於內存時,無法使用read()方法。

總結:不適用於讀取大文件

 

簡單代碼

f = open('test/gbk.txt', 'r+', encoding='utf-8')
print(f.read())

測試結果

123
456
789
@#$%

 

readline()

優點:readline()方法每次讀取一行;返回的是一個字符串對象,保存當前行的內存,不占用內存

缺點:比readlines慢得多

 

簡單代碼

# 讀取一行
f = open('test/gbk.txt', 'r+', encoding='utf-8')
print("讀取一行 ====")
line = f.readline()
while line:
    # 打印當前文件指針的位置
    print("文件指針:", f.tell())
    print("行內容:", line)
    line = f.readline()

測試結果

讀取一行 ====
文件指針: 7
行內容: tests

文件指針: 12
行內容: 123

文件指針: 17
行內容: 456

文件指針: 22
行內容: 789

文件指針: 28
行內容: 菠蘿

包含知識點

  • 當你每次調用readline()方法時,你的文件指針就會指向當前行尾部,一個換行符 \n 占兩位,一個中文也是
  • 讀取到最后一行之后再調用readline()就會返回空,結束循環

 

readlines()

特點:一次性讀取整個文件;自動將文件內容分析成一個行的列表

 

簡單代碼

# 讀取多行
f = open('test/gbk.txt', 'r+', encoding='utf-8', errors='ignore')
print("讀取多行 ====")
print(f.readlines())

測試結果

['tests\n', '123\n', '456\n', '789\n', '菠蘿']

包含知識點

  • readlines()讀取所有行然后把它們作為一個字符串列表返回
  • 返回的每一行內容包含換行符

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM