用Python讀取幾十萬行文字資料

2022-10-04 18:27:13 字數 640 閱讀 9190

我在使用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....