Os.walk(directory)を使用して、そのディレクトリのすべてのファイルを再帰的に表示しています。問題は、名前に尋ねられた文字列を含むファイルのみを表示する必要があり、メタ文字も管理する必要があることです。
私が今持っているものは:
for root, subdirs, files in os.walk(dir1):
for filename in files:
if substring in filename:
name_path = os.path.join(root,filename)
list.insert(END, name_path)
これはうまく機能しますが、substring = *
、「*」を含むファイルがないため、リストは空です。
substring
にMETACHARが含まれている場合、どうすればこれを機能させることができますか?
私はあなたがfnmatchを探していると思う:
https://docs.python.org/3/library/fnmatch.html#module-fnmatch
Globを使用できます。 Linuxでコマンドを見つけるのに非常に便利で似ています。
import glob
glob.glob("/home/user/*.txt")
複数のサブディレクトリを検索する
glob.glob("/home/user/*/*.txt")
または
glob.glob("/home/user/logs?.txt")