私はいくつかの他のフォルダを含むフォルダを持っていて、それぞれには32214個のファイルに関する多くのテキストファイルが含まれています。私は特定の単語の前と後に5単語を印刷したいと思います。私のコードはこれらのすべてのファイルを読むべきです。以下のコードは動作しますが、すべてのファイルを読み込んで文章を抽出するのに約8時間かかります。数分で文章を読み込んで印刷できるように、コードを変更するにはどうすればよいですか?すべてのファイルをアクセスするために使用os.walk
(言語はペルシャ語である)テキストファイル内の特定の単語の前後の単語を取得する
.
.
.
def extact_sentence():
f= open ("پاکت", "w", encoding = "utf-8")
y = "پاکت"
text= normal_text(folder_path) # the first function to normalize the files
for i in text:
for line in i:
split_line = line.split()
if y in split_line:
index = split_line.index(y)
d = (' '.join(split_line[max(0,index-5):min(index+6,len(split_line))]))
f.write(d + "\n")
f.close()
各ファイルを1/1000秒以下で処理できると思いますか? –
コード自体をスピードアップするためにできることが非常にあるかどうかはわかりませんが、ボトルネックはおそらくasyncioでスピードアップできるハードドライブのアクセスだと思いますが、速度は –
で、 'normal_text'はすべてのファイルを一度にメモリにロードしますか?あなたは 'normal_text'を書いていましたか?そこでは最適化が可能です。 –