私はos.walk
を使ってhtmlファイルを検索していますが、ファイルを返すのに2分かかりました。 パフォーマンスを改善するための提案はありますか?os.walk検索の改善
path1 = "//ggco/kk"
shp_list = []
for dirpath, dirnames, y in os.walk(path1):
for k in y:
k.startswith(Lot_Operation_combine) and k.endswith(".html")
fullpath = os.path.join(dirpath, k)
shp_list.append(fullpath)
if os.path.isfile(fullpath):
path = "//ggco/kk"
shp_list = []
for dirpath, dirnames, x in os.walk(path):
for f in x:
if f.startswith(Lot_Operation_combine1) and f.endswith(".html"):
fullpath = os.path.join(dirpath, f)
shp_list.append(fullpath)
if os.path.isfile(fullpath):
with open(fullpath, 'r')as f:
f_contens = f.read()
print(f_contens)
kau = f_contens
context = {"Final": kau}
return render(request, 'Output.html', context)
else:
path = "//ggco/kk"
shp_list = []
for dirpath, dirnames, x in os.walk(path):
for f in x:
if f.startswith(Lot_Operation_1A) and f.endswith(".html"):
fullpath = os.path.join(dirpath, f)
shp_list.append(fullpath)
if os.path.isfile(fullpath):
with open(fullpath, 'r')as f:
f_contens = f.read()
print(f_contens)
kau = f_contens
context = {
"Final": kau
}
return render(request, 'Output.html', context)
私はPythonプログラミング言語の新機能です。
os.walk
を使用して1つの特定のファイルをより良いパフォーマンスで検索することをお考えですか?
私はあなたがこの問題のいくつかのアイデアを共有できることを願っています。
ありがとうございます。
あなたは再帰的に特定のファイルを見つけることを意味しますか?これをチェックする:[Pythonで再帰的にファイルを探す?](https://stackoverflow.com/a/2186565/7428855) – Ian
このコードは、各パスについて、すべてのパスを再度通過しているため、速度が遅くなります。 N^2)complexityここで、Nはパス内のファイル数です。また、同じデータを何度も印刷することになります。 – Pavan
私はあなたのコードをたくさん最適化できると思います。複数のチェックがあります。それらのすべてのものを取り除こうとしてください – NMN