glob.glob()、os.path.split()函数、global和nonlocal关键字
1. glob.glob()
glob模块是Python最简单的模块之一, 内容非常少, 用它可以查找符合特定规则的文件路径名, 查找文件时只会用到三个匹配符:
- * :匹配0个或多个字符
- ? : 匹配单个字符
- [] : 匹配指定范围内的字符, 如[0-9]匹配数字
返回的是列表 list类型,是所有路径下的符合条件的文件名的列表;
例子:要对某个文件进行处理,需要使用改函数,得到文件名;参数为相对路径(也可以为绝对路径),指当前目录下的train文件夹下的所有图片
还有我发现glob.glob()不能通过带有变量的路径来返回指定的文件,结果会返回空数组!!!
必须在参数里写上指定的路径,可以是相对路径也可以是绝对路径。
import os os.path.abspath('')
|
当前的路径
|
import glob imgs = glob.glob('./celebrity_data/train/*11.jpg') np.random.shuffle(imgs) imgs
|
![]()
|
glob.iglob()
获取一个可遍历的对象, 使用它可以逐个获取匹配的文件路径名. 与glob.glob()
的区别是: glob.glob()
会同时获取到所有的匹配路径, 而glob.iglob()
一次只获取一个匹配路径.
f = glob.iglob("../*.py") print(f) # <generator object iglob at 0x00B9FF80> for py in f: print(py)
2.os.path.split()
语法:os.path.split('PATH')
参数说明:
PATH指一个文件的全路径作为参数:
如果给出的是一个目录和文件名,则输出路径和文件名
如果给出的是一个目录名,则输出路径和为空文件名
实际上,该函数的分割并不智能,它仅仅是以 "PATH" 中最后一个 '/' 作为分隔符,分隔后,将索引为0的视为目录(路径),将索引为1的视为文件名
3. global和nonlocal关键字
global适用于函数内部修改全局变量的值
nonlocal适用于嵌套函数中内部函数修改外部变量的值
如果没有使用以上关键字,对全局变量或者外部变量进行修改,python会默认将全局变量隐藏起来
global | nonlocal |
def outside(): var = 5 def inside(): var = 3 print(var) inside() outside() |
def outside(): var = 5 def inside(): print(var) var = 3 inside() outside() |
正常运行: |
报错 |