目前我的os.walk代码列表是指定目录下所有目录中的所有文件。
top = /home/bludiescript/tv-shows
for dirpath, dirnames, filenames in os.walk(top):
for filename in filenames:
print os.path.join([dirname, filename])那么我怎么才能添加
glob.glob(search)
search = self.search.get_text搜索我在gtk.Entry中键入的模式
或者这是不能与我当前的代码一起工作的
发布于 2011-09-25 03:22:35
您不需要使用glob.glob;它会根据您已经检索到的目录中的名称进行检查。相反,使用fnmatch.fnmatch将您的模式与从os.walk获得的路径名列表进行匹配(可能在添加路径之前)。
for filename in filenames:
if fnmatch.fnmatch(filename, search):
print os.path.join([dirname, filename])发布于 2011-09-25 03:20:40
你不想要glob,你想要fnmatch。
for dirpath, dirnames, filenames in os.walk(top):
for filename in filenames:
if fnmatch.fnmatch(filename, my_pattern):
print os.path.join([dirname, filename])glob完成了os.walk已经完成的部分工作:检查磁盘以查找文件。fnmatch是一个纯字符串操作:此文件名是否与此模式匹配?
https://stackoverflow.com/questions/7541283
复制相似问题