Python glob模块和主要方法

概述

glob是python自己带的一个文件操作相关模块,查找文件目录和文件,类似于Windows下的文件搜索。

glob模块会将查找到的文件目录或文件的搜索结果返回到一个列表中。

支持的通配符:

支持:*,?,[],这三个通配符

  • *代表匹配0个或多个字符
  • ?代表匹配任意一个字符
  • []匹配指定范围内的字符
    • 如:
    • [0-9]匹配所有数字
    • [a-z]匹配所有字母
    • [1,2,3]仅匹配1,2,3三个数字
    • [!1,2,3]不匹配1,2,3三个数字

导入模块

1、import glob #导入整个glob模块

2、from glob import golb #从glob模块导入glob函数

两个主要方法:

glob方法和iglob方法

glob方法:

返回所有匹配的文件路径列表(list);该方法需要一个参数用来指定匹配的路径字符串(字符串可以为绝对路径也可以为相对路径),其返回的文件名只包括当前目录里的文件名,不包括子文件夹里的文件。

实例

# -*- coding: utf-8 -*-

import glob #导入整个glob模块

# 获取当前目录下所有py文件
print(glob.glob('./*.py'))
print(glob.glob('*.py')) # 不写路径也代表当前目录

# 获取C盘下的所有txt文件
print(glob.glob(r'c:*.txt'))

# 获取上一级目录所有py文件
print(glob.glob('../*.py'))

# 获取当前目录下文件名是数字的py文件
print(glob.glob('./[0-9].py')

iglob方法:

获取一个迭代器( iterator )对象,使用它可以逐个获取匹配的文件路径名。与glob.glob()的区别是:glob.glob()可同时获取所有的匹配路径,而glob.iglob()一次只能获取一个匹配路径。

实例

# -*- coding: utf-8 -*-
import glob

# 获取上一级目录.py文件路径名
f = glob.iglob(r'../*.py')

print(f)      # <generator object _iglob at 0x000001F9F972CC10>


# 打印每个py文件路径名
for py_path in f:
    print(py_path)

参数recursive

glob方法和iglob方法都有一个参数:recursive默认为False

如果为True,则会搜索出目录下所有子目录和对应的文件。

例如:

# 找出当前目录以及子目录所有py文件
# ** 用于表示任意层文件或文件夹
print(glob.glob('**/*.py', recursive=True))

# 找出上一级目录以及子目录所有py文件
# ** 用于表示任意层文件或文件夹
print(glob.glob('../**/*.py', recursive=True))

python笔记

Python os.walk() 方法

2022-5-4 11:44:57

python笔记

python os.scandir()函数 

2022-5-4 13:18:20

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索