0
我有一個很大的文本文件(parsed.txt
),其中包含近1.500.000行。每一行的格式如下:從大文件中讀取字符串的速度更快
foobar foo[Noun]+lAr[A3pl]+[Pnon]+[Nom]
loremipsum lorem[A1sg]+lAr[A3pl]+[Pl]+[Nom]
我給空間之後的第二場,並用此功能空間之前拿到第一場:
def find_postag(word,postag):
with open('parsed.txt',"r") as zemberek:
for line in zemberek:
if all(i in line for i in (word,postag)):
if line.split(" ")[0].startswith(word) and line.split(" ")[1] == word+postag:
selectedword = line.split(" ")[0]
break
return selectedword
然而,它的工作速度太慢。我不確定我怎樣才能讓這個過程更快。我的想法是:parsed.txt
文件是按字母順序排列的。如果給出word
變量以「z」字母開頭,則它會不必要地讀取近900.000行。如果給定的word
以「z」字母開頭,它可能會更快,如果它將檢查900.000行。有沒有更好的想法,我該如何實施?
考慮閱讀和分析文件只有一次。將其內容存儲在字典中以進行快速查找。其餘的數據也可以被解析爲更友好的東西。 –