我在使用python讀取幾十萬行的檔案中的資料,並構造字典,列表等資料結構時,再訪問字典,列表時,一般都會出現記憶體不夠的問題,然後只能迴圈讀取幾百行或者一定數量的行數來迴圈操作。
keyword_list=[line.strip() for line in open("keywords.txt",'r')]
程式設計客棧#f1=open("part_wiki_vec.txt",'r')
f1=open("wiki_vcsqbuectors.txt")
f2=open("result.txt",'w')
i=0content=f1.readlines()
while i<1150:
for line in content[300*i:300*(i+1)]:
line=line.strip().split(' ')
if line[0] in keyword_list:
wordvec=' '.join(line)
print wordvec
f2.write(wordvec)
#print line
i+=1
我是這樣讀取的
應程式設計客棧該還有很多好的方法,比如程式設計客棧多執行緒等等。
做此記錄只為了學習
總結
python讀取幾千萬行的大表記憶體問題
python導資料的時候,需要在乙個大表上讀取很大的結果集。如果用傳統的方法,python的記憶體會爆掉,傳統的讀取方式預設在記憶體裡快取下所有行然後再處理,記憶體容易溢位 解決的方法 1 使用sscursor 流式游標 避免客戶端占用大量記憶體。這個cursor實際上沒有快取下來任何資料,它不會讀...
用Python讀取檔案
讀取檔案的案例 opne是python中檔案讀取的內建引數,r指的是read,唯讀模式 f是file縮寫,常用在檔案返回的目標 encoding utf 8 轉換編碼模式 f open 檔案.txt r encoding utf 8 mystring f.read 讀取所有內容 f.close 關閉...
python讀取檔案用b模式讀取
f open aaa rb 返回的是位元組 字串編碼 python中所有的字串編碼為unicode,如果從乙個檔案讀取字串,那麼該字串的編碼就是該檔案的編碼。f.tell 返回當前的游標位置。以位元組計算 返回位子引數例如 1 f open bbb r encoding gbk 2 print f....