python中讀取文件的三種方法read(),readline(),readlines()
創(chuàng)新互聯(lián)-云計(jì)算及IDC服務(wù)提供商,涵蓋公有云、IDC機(jī)房租用、成都服務(wù)器托管、等保安全、私有云建設(shè)等企業(yè)級互聯(lián)網(wǎng)基礎(chǔ)服務(wù),溝通電話:028-86922220
測試文件tb.txt文件的內(nèi)容:
Oracle
MySQL
PostgreSQL
redis
MongoDB
read
返回的是字符串類型,默認(rèn)讀取文件的全部內(nèi)容;
file1 = open('tb.txt', 'r') content = file1.read() file1.close print(content) print(type(content)) 輸出結(jié)果: Oracle MySQL PostgreSQL Redis MongoDB
readline
返回的是字符串類型,默認(rèn)每次只加載讀取一行;
file1 = open('tb.txt', 'r') content1 = file1.readline() file1.close print(type(content1)) print(content1) 輸出結(jié)果:Oracle
from __future__ import print_function file1 = open('tb.txt', 'r') content = file1.readline() print(type(content)) while content: print(content, end='') content = file1.readline() file1.close 輸出結(jié)果:Oracle MySQL PostgreSQL Redis MongoDB
readlines
返回的是list類型,默認(rèn)返回的是文件中全部內(nèi)容;
file1 = open('tb.txt', 'r') content = file1.readlines() file1.close print(type(content)) print(content) 輸出結(jié)果:['Oracle\n', 'MySQL\n', 'PostgreSQL\n', 'Redis\n', 'MongoDB']
linecache.getline
返回的是list類型,指定返回某一行;
import linecache content = linecache.getline('tb.txt', 4) print(type(content)) print(content) 輸出結(jié)果:Redis
總結(jié)
read和readlines需要把整個大文件加載到內(nèi)存中,所以操作大文件比較慢;
而readline是每次只加載一行,占用內(nèi)存小,所以操作大文件的時候比較快;
linecache.getline可以指定操作的行,效率也還可以;