Python: 文件名包含字符串(元字符?)

Python: filename contains String (metachar?)

我正在使用 os.walk(目录) 递归显示该目录中的所有文件。 问题是我只需要显示名称中包含询问字符串的文件,它也必须管理元字符。

我现在拥有的是:

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")