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会默认将全局变量隐藏起来

globalnonlocal
def outside():
  var = 5
  def inside():
    var = 3
    print(var)

  inside()
outside()
def outside():
  var = 5
  def inside():
    print(var)  
    var = 3
  inside()
outside()
正常运行:
结果为3
报错
inside函数改变了var所以python将var隐藏了起来,这里的print找不到var因而报错。

 

转载于:https://www.cnblogs.com/nxf-rabbit75/p/10120098.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值