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")
我正在使用 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")