python标准库之glob模块(详细+举例)

glob是python标准库中用来处理文件和文件夹的模块,其实该模块的函数很少,有以下几个:

1. glob.glob(pathname, *, recursive=False)

用来查找符合特定规则的文件名,提供的特征符号为*, ?[].

  • 输入为路径
  • 输出为list类型
    举例:
    当前文件夹列表为:
.
├── 1.gif
├── 2.txt
├── card.gif
├── sub
│   └── 3.txt
└── test.py

1 directory, 5 files
import glob
# 当前文件夹下文件名在0-9之间,不限文件类型
print(glob.glob('./[0-9].*'))
# 所有.gif类型的文件
print(glob.glob('*.gif'))
# 名字长度为1的,且类型为.gif的文件
print(glob.glob('?.gif'))
# **代表..
print(glob.glob('**/*.txt', recursive=True))
print(glob.glob('./**/', recursive=True))
# 输出
# ['./1.gif', './2.txt']
# ['1.gif', 'card.gif']
# ['1.gif']
# ['2.txt', 'sub/3.txt']
# ['./', './sub/']

2. glob.iglob(pathname, *, recursive=False)

与glob不同的是, iglob返回的是迭代器,
举例:

import glob
path = glob.iglob('./[0-9].*')
print(path)
for i in path:
    print(i)
# 输出为
# <generator object _iglob at 0x7facf9f5b990>
# ./1.gif
# ./2.txt

3. glob.escape(pathname)

这会将特殊字符*, ?[]转义,举例:

import glob
print(glob.escape('./[0-9].*'))
# ./[[]0-9].[*]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章