Python 例項一 統計指定檔案的行數或讀取指定檔案指定行數的內容
阿新 • • 發佈:2019-01-31
一. 基礎知識
統計指定檔案的行數,必須先開啟讀取檔案內容,用到open/檔案操作: f=open('/tmp/hello','w') #open(路徑+檔名,讀寫模式) #讀寫模式:r只讀,r+讀寫,w新建(會覆蓋原有檔案),a追加,b二進位制檔案.常用模式 如:'rb','wb','r+b'等等
讀寫模式的型別有:
rU 或 Ua 以讀方式開啟, 同時提供通用換行符支援 (PEP 278) w 以寫方式開啟, a 以追加模式開啟 (從 EOF 開始, 必要時建立新檔案) r+ 以讀寫模式開啟 w+ 以讀寫模式開啟 (參見 w ) a+ 以讀寫模式開啟 (參見 a ) rb 以二進位制讀模式開啟 wb 以二進位制寫模式開啟 (參見 w ) ab 以二進位制追加模式開啟 (參見 a ) rb+ 以二進位制讀寫模式開啟 (參見 r+ ) wb+ 以二進位制讀寫模式開啟 (參見 w+ ) ab+ 以二進位制讀寫模式開啟 (參見 a+ )
#coding=utf-8 count = -1 for count, line in enumerate(open('F:\daiqinge\dai.txt','rU').readlines()): pass count+=1 print(count) 其中pass語句的意思是空操作,什麼也不做 3. (大檔案)另外一種處理大檔案的方法(統計了換行符的個數)
#coding=utf-8 count = 0 thefile = open('F:\daiqinge\dai.txt', 'rb') while True: buffer = thefile.read(8192*1024) if not buffer: break count += buffer.count('\n') thefile.close( ) print(count+1)引數'rb'是必須的,否則在windows系統上,上面的程式碼會非常慢
三. 讀取指定檔案的內容
(大檔案)linecache是專門支援讀取大檔案,而且支援行式讀取的函式庫。 linecache預先把檔案讀入快取起來,後面如果你訪問該檔案的話就不再從硬碟讀取
1. 讀取檔案某一行的內容(測試過1G大小的檔案,效率還可以)
#coding=utf-8 import linecache count = linecache.getline('F:\daiqinge\dai.txt',2) print(count)
讀取檔案第2行的內容
2. 讀取指定檔案的全部內容
用linecache讀取檔案內容(測試過1G大小的檔案,效率還可以)
#coding=utf-8 import linecache content = linecache.getlines('F:\daiqinge\dai.txt') print(content)
content為列表形式,每一行為列表中的一個元素