python标准库之glob模块:查找符合特定规则的文件路径名

前言

1、glob模块可以查找符合特定规则的文件路径名,跟使用windows下的文件搜索差不多。

2、查找文件只用到三个匹配符:*,?, []。

①*通配符:匹配0个或多个字符;

②?单个字符通配符:匹配单个字符;

③[]字符范围:匹配指定范围内的字符,如:[0-9]匹配数字。

glob模块的用法

glob.glob

①返回所有匹配的文件路径列表

②只有一个参数 pathname :定义了文件路径匹配规则;可以是绝对路径,可以是相对路径。

代码示例:

import glob

#获取指定目录下的所有图片
print (glob.glob(r"/home/qiaoyunhao/*/*.png"),"\n")#加上r让字符串不转义

#获取上级目录的所有.py文件
print (glob.glob(r'../*.py')) #相对路径

运行结果:

python标准库之glob模块:查找符合特定规则的文件路径名

glob.iglob

①获取一个可编历对象,使用它可以逐个获取匹配的文件路径名。

②与 glob.glob()的区别: glob.glob()同时获取所有的匹配路径;而 glob.iglob()一次只获取一个匹配路径。

代码示例:

 

import glob
#父目录中的.py文件
f = glob.iglob(r'../*.py')
print (f) #<generator object iglob at 0x00B9FF80>
for py in f:
    print (py)

运行结果:

python标准库之glob模块:查找符合特定规则的文件路径名

查找路径

通配符

星号(*)匹配零个或多个字符

代码示例

import glob
for name in glob.glob('dir/*'): print (name)

运行结果:

dir/file.txt
dir/file1.txt
dir/file2.txt
dir/filea.txt
dir/fileb.txt
dir/subdir

单个字符通配符

问号(?)匹配任何单个的字符。

代码示例:

import glob

for name in glob.glob('dir/file?.txt'):
    print (name)

运行结果:

dir/file1.txt
dir/file2.txt
dir/filea.txt
dir/fileb.txt

字符范围

当需要匹配一个特定的字符,[]表示匹配指定范围内的字符。

代码示例:

import glob
for name in glob.glob('dir/*[0-9].*'):
    print (name)

运行结果:

dir/file1.txt
dir/file2.txt
上一篇:JavaScript中你所不知道的Object(二)--Function篇


下一篇:js Object.seal()