python自带的glob模块用于查找符合特定规则的文件路径名。
这个模块紧张供应了一个函数glob(),它返回一个列表,包含了所有匹配特定模式的文件路径。
跟pathlib.Path.glob是类似的功能,两者之间也有明显的差异。

glob.glob():是一个函数可以直接调用,函数返回一个list,包括匹配到的文件或目录名。
pathlib.Path.glob():须要先初始化Path类,然后调用glob函数,返回的是yield天生器,并且返回的是文件路径工具。
超大型的文件目录可以建议利用pathlib.Path.glob。
glob.glob()函数先容

利用时先导入glob模块:

import glob

glog.glob函数源码如下:适配python3.12版本,不同的版本参数可能不同。

php生成器递归python的globglob函数递归匹配文件或目次 PHP

参数先容:

pathname:一个字符串,表示要匹配的文件模式。

'':匹配给定路径下所有的文件和目录(不会递归查找子目录)。
'.txt':匹配给定路径下所有以.txt结尾的文件(不会递归查找子目录)。
'a/.csv':匹配a目录下所有以.csv结尾的文件。
'':匹配当前目录及其所有子目录下的文件和目录(支持递归)。
'/.py':匹配当前目录及其所有子目录下所有以.py结尾的文件(支持递归)。
'?.txt':匹配所有单个字符文件名并以.txt结尾的文件(例如a.txt,但不包括ab.txt)。
'[abc].txt':匹配a.txt、b.txt或c.txt。

root_dir:默认为None,利用当前目录;传入其他目录,比如“D:”表示在传入的目录中查找。

recursive:默认为False,参数为True和pathname包含时,会递归地查找所有子目录中的文件。

Include_hidden:默认为False,参数为True时会查找隐蔽的目录。

举例:

1)查找某个目录中的python文件

for file in glob.glob('.py',root_dir='D:\Python37\Scripts'): print(file)

2)递归查找某个目录及所有子目录中的python文件

for file in glob.glob('/.py',root_dir='D:\Python37\Scripts', recursive=True): print(file)

3)查找某个目录中的隐蔽的所有文件

for file in glob.glob('',root_dir='D:\Python37\Scripts', include_hidden=True): print(file)Path.glob(pattern)函数

返回与给定模式匹配的所有文件路径工具;这个方法返回的是一个天生器,可通过for循环访问。

参数pattern阐明:pattern是一个字符串,用于指定要搜索的文件模式,有些类似于re模块对应的正则表达式,支持像通配符,代表单个字符的?等。

以下是一些pattern参数的示例:

'':匹配给定路径下所有的文件和目录(不会递归查找子目录)。
'.txt':匹配给定路径下所有以.txt结尾的文件(不会递归查找子目录)。
'a/.csv':匹配a目录下所有以.csv结尾的文件。
'':匹配当前目录及其所有子目录下的文件和目录(支持递归)。
'/.py':匹配当前目录及其所有子目录下所有以.py结尾的文件(支持递归)。
'?.txt':匹配所有单个字符文件名并以.txt结尾的文件(例如a.txt,但不包括ab.txt)。
'[abc].txt':匹配a.txt、b.txt或c.txt。

测试代码:先初始化Path类,传入参数Path.cwd(),表示当前路径。

1)利用glob函数匹配特定的python文件。

path_ins= Path(Path.cwd())for i in path_ins.glob('.py'): print(f'路径:{i}')

2)利用glob函数匹配所有的文件和目录。

path_ins= Path(Path.cwd())for i in path_ins.glob(''): print(f'路径:{i}')

3)利用glob函数匹配当前目录及所有子目录下的所有文件和文件夹。

path_ins= Path(Path.cwd())for i in path_ins.glob(''): print(f'路径:{i}')

共勉: 东汉·班固《汉书·枚乘传》:“泰山之管穿石,单极之绠断干。
水非石之钻,索非木之锯,渐靡使之然也。

-----指水点不断地滴,可以滴穿石头;

-----比喻坚持不懈,集细微的力量也能造诣难能的功劳。

----感谢读者的阅读和学习,感激大家。