zoukankan      html  css  js  c++  java
  • 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()
    正常运行:
    结果为3
    报错
    inside函数改变了var所以python将var隐藏了起来,这里的print找不到var因而报错。

     

  • 相关阅读:
    ExtJS小技巧
    Oracle 表的行数、表占用空间大小,列的非空行数、列占用空间大小 查询
    NPM 私服
    IDEA 不编译java以外的文件
    SQL 引号中的问号在PrepareStatement 中不被看作是占位符
    Chrome 浏览器自动填表呈现淡黄色解决
    批量删除Maven 仓库未下载成功.lastupdate 的文件
    Oracle 11g 监听很慢,由于监听日志文件太大引起的问题(Windows 下)
    Hibernate 自动更新表出错 建表或添加列,提示标识符无效
    Hibernate 自动更新表出错 More than one table found in namespace
  • 原文地址:https://www.cnblogs.com/nxf-rabbit75/p/10120098.html
Copyright © 2011-2022 走看看