【问题标题】:What does the star * has to do with the glob in python?星 * 与 python 中的 glob 有什么关系?
【发布时间】:2019-10-31 04:46:10
【问题描述】:

我是 python 新手,我正在使用它来编写脚本。

我想了解glob 的工作原理,星号 (*) 与glob 的关系如何,它是如何工作的?

我查看了很多来源,但我无法找出星号 (*) 对 glob 的含义

【问题讨论】:

  • ...无论如何——要使一个问题成为话题,它必须是狭隘而具体的;因此,不仅询问一个字符,而且询问一个特定的句法用途。几乎可以肯定,我们的数据库中已经有问答条目,涵盖了您可能想询问的任何特定用途。
  • 你好!我建议为3.7.32.7.16 做一些python 研究
  • 公平地说,Python 文档没有解释 glob 模式,只是“根据 Unix shell 使用的规则”。
  • ... 这将导致例如man7.org/linux/man-pages/man7/glob.7.html 搜索时。
  • 当然; 如果 那是 OP 想知道的,wiki.bash-hackers.org/syntax/pattern 可能是相关的,但要理解不包括任何扩展。但是,问题的主体并没有以任何方式支持这种解释。只是标题中提到了 glob。

标签: python python-3.x scripting glob


【解决方案1】:

如果我们在模式中讨论“*”,那么,通常* 仅表示“匹配任意数量的字符”或更准确的“匹配 0 个或更多字符”,所以如果我们假设我们在目录:apple cherry custard green_apple 则可以获取文件列表,例如:

import glob

print("glob.glob('a*') -> {}".format(glob.glob('a*'))) # match starting with 'a'

print("glob.glob('*a*') -> {}".format(glob.glob('*a*'))) # match anything that contains an 'a'

print("glob.glob('apple*') -> {}".format(glob.glob('apple*'))) # match if starts with 'apple'

print("glob.glob('*apple*') -> {}".format(glob.glob('*apple*'))) # match if 'apple' is in the filename

这会返回

glob.glob('a*') -> ['apple']
glob.glob('*a*') -> ['apple', 'custard', 'green_apple']
glob.glob('apple*') -> ['apple']
glob.glob('*apple*') -> ['apple', 'green_apple']

这是您可以使用glob.glob 做什么的非常简单的视图。

【讨论】:

    猜你喜欢
    • 2017-06-25
    • 2019-01-08
    • 2019-09-14
    • 2011-08-19
    • 2011-11-17
    • 1970-01-01
    • 2014-07-27
    • 2016-04-29
    • 2021-11-08
    相关资源
    最近更新 更多