このプログラムの目的は、ルートディレクトリ内のすべてのファイルとディレクトリを再帰的に見て、キーフレーズ(mainメソッドのfileという名前)の一致を見つけることです。私の主な問題は、サブディレクトリに入る方法を見つけ出すことができず、その中のすべてのファイルとディレクトリをループすることを確かめることができず、ツリー内のすべてのディレクトリルートディレクトリ。Pythonでフォルダを再帰的に読む
ここは私の現在のコードです。
import os
import sys
def search_dir(path):
for root, dirs, files in os.walk(os.path.abspath(path)):
for f in files:
if file in f:
print("File : {}".format(os.path.join(root, f)))
for d in dirs:
if file in d:
print("Dir : {}".format(os.path.join(root, d)))
def main(file, path):
print("Starting search for '{}'\n".format(file))
search_dir(path)
print("\nDone Searching")
if __name__ == "__main__":
if len(sys.argv)!=3:
print("Usage: python find_file.py [path] [file]")
else:
path, file = sys.argv[1], sys.argv[2]
main(file, path)
は私がos.chdir(new_path)を使用して、ディレクトリを変更しようとしましたが、私は、私は再帰的に使用する方法があるかのように私は感じるなどのバックディレクトリを変更するときに迷子になるなどの問題に実行して終わりますsearch_dir関数が、私はそれを正しく実行することはできません。
を私はおそらくダウンとマークされますが、私は、ツリー全体を通過すでにos.walk、この投稿をした後、私は気づきました。したがって、os.walkを使用する関数は再帰的に使用する必要はありません。たぶん、誰かが正確にos.walkが何をしているのかを明確にすることができました。fucntionで読んだことは私には分かりませんでした。 –