如何实现 glob.glob

发布于 2024-12-06 08:07:49 字数 402 浏览 0 评论 0原文

目前我的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 中输入的模式

,或者这是否不适用于我当前的代码

currently my os.walk code list's all the files in all directories under the specified directory.

top = /home/bludiescript/tv-shows
        for dirpath, dirnames, filenames in os.walk(top):
               for filename in filenames:
                  print os.path.join([dirname, filename])

so how could i add

glob.glob(search)
search = self.search.get_text

to search for the pattern that i type in the gtk.Entry

or is this something that would not work with my current code

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

谁的新欢旧爱 2024-12-13 08:07:50

您不需要 glob.glob 来实现此目的;它会检查您已经检索到的目录中的名称。相反,使用 fnmatch.fnmatch 将您的模式与从 os.walk 获取的路径名列表进行匹配(可能在添加路径之前)。

for filename in filenames:
    if fnmatch.fnmatch(filename, search):
        print os.path.join([dirname, filename])

You don't want glob.glob for this; it checks against names in the directory, which you've already retrieved. Instead, use fnmatch.fnmatch to match your pattern against the list of pathnames you got from os.walk (probably before you add the path).

for filename in filenames:
    if fnmatch.fnmatch(filename, search):
        print os.path.join([dirname, filename])
迟到的我 2024-12-13 08:07:49

您不需要 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 是一个纯字符串操作:这个文件名与这个模式匹配吗?

You don't want glob, you want 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 does part of the work that os.walk has already done: examine the disk to find files. fnmatch is a pure string operation: does this filename match this pattern?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文