Python Glob Module – Glob() 方法
本文主要是说明了 glob 模块的 Python glob() 方法。它包括几个示例以使其清晰。
目录
- 介绍
- Python Glob() 方法glob(file_pattern,递归 )iglob() 方法 |
- escape() 方法
介绍
通常,程序员需要遍历某个位置的文件列表,大多数具有特定的模式。
Python 中的 glob 模块有几个函数,可以帮助列出指定文件夹下的文件。我们可能会根据扩展名或将特定字符串作为文件名的一部分来过滤它们。
Glob 模块的所有方法都遵循 Unix 风格的模式匹配机制和规则。但是,它不允许扩展波浪号 (~) 和环境变量。
Python Glob() 方法
今天,我们将讨论 Glob 模块的三个主要功能。
glob(file_pattern,递归 )
它检索与 file_pattern 参数中的指定模式匹配的文件列表。
file_pattern可以是绝对路径或相对路径。它还可能包含通配符,例如“*”或“?”符号。
默认情况下,递归参数处于关闭状态 (False)。如果为 True,则递归搜索当前目录的所有子目录下的文件。
现在让我们看看一些例子:
检查当前目录中的 Python 脚本文件
以下代码仅检查当前目录中的.py文件。
>>> import glob
>>> for py in glob.glob("*.py"):
... print(py)
...
copy_file1.py
copy_file2.py
decimal_sample.py
另一个示例代码 – 它检查当前目录和子目录中的.py文件。
>>> import glob
>>> for py in glob.glob("*.py"):
... print(py)
...
copy_file1.py
copy_file2.py
decimal_sample.py
test_num.py
test_python_in_with_if.py
test_scope.py
列出符合模式匹配的文件
我们可以通过包含一些通配符来提供路径名模式,例如?或数字范围 [0-9]。下面的代码列出了名称以“test”开头后跟数字的所有文件。
>>> for py in glob.glob("test[0-9].py"):
... print(py)
...
test1.py
test2.py
让我们使用模式中的问号再检查一个示例。
>>> for py in glob.glob("?????.py"):
... print(py)
...
quiz1.py
test1.py
test2.py
以下语句将以递归方式打印当前工作目录中的文件夹名称。
>>> glob.glob('selenium/**/', recursive=True)
['selenium\\', 'selenium\\webdriver\\', 'selenium\\webdriver\\firefox\\', 'selen
ium\\webdriver\\firefox\\amd64\\', 'selenium\\webdriver\\firefox\\x86\\']
iglob() 方法 |
此方法创建一个 Python 生成器对象,该对象可用于列出给定目录下的文件。您可以调用 next() 函数来打印文件名。
检查下面的示例代码:
>>> gen = glob.iglob("*.py")
>>> type(gen)
>>> for py in gen:
... print(py)
...
copy_file1.py
copy_file2.py
decimal_sample.py
find_seed.py
frozen_set.py
escape() 方法
它允许转义给定的字符序列。您可以发现它很容易找到文件名中包含某些字符的文件。
查看以下示例:
>>> char_seq = "-_#"
>>> for spcl_char in char_seq:
... esc_set = "*" + glob.escape(spcl_char) + "*" + ".py"
... for py in (glob.glob(esc_set)):
... print(py)
...
python quiz-classes-2.py
python-class.py
python-lists.py
python-random#num.py
python-set.py
python-tuples.py
python-while_loop.py
copy_file#2.py
decimal_sample.py
find_seed.py
frozen-set.py
小练习 –
Python 列出目录中的所有文件