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行。有没有更好的想法,我该如何实施?
考虑阅读和分析文件只有一次。将其内容存储在字典中以进行快速查找。其余的数据也可以被解析为更友好的东西。 –