目前我的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
中输入的模式或者这是否适用于我当前的代码
答案 0 :(得分:4)
您不希望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
是纯字符串操作:此文件名是否与此模式匹配?
答案 1 :(得分:2)
你不希望glob.glob
为此;它会检查您已检索的目录中的名称。相反,使用fnmatch.fnmatch
将您的模式与您从os.walk
获得的路径名列表相匹配(可能在您添加路径之前)。
for filename in filenames:
if fnmatch.fnmatch(filename, search):
print os.path.join([dirname, filename])