Python文件和目录模块介绍:glob、shutil、ConfigParser

时间:2022-04-23 22:20:18

glob模块

   查找符合特定规则的文件路径名,路径名可以使用绝对路径也可以使用相对路径。查找文件会使用到三个通配符,星号*,问号?和中括号[],其中"*"表示匹配0~n个字符, "?"表示匹配任意1个字符;"[]"表示匹配指定范围内的字符,如[0-9]匹配数字。

  常用函数

glob.glob() 获取所有匹配的文件路径列表
glob.iglob() 获取一个可遍历对象,使用它可以逐个获取匹配的文件路径名。与glob()的区别是:glob()一次获取所有匹配路径。而iglob()一次只获取一个匹配路径。

  实例

>>> import glob
>>> glob.glob('/home/test1/*.txt') #查找/home/test1目录下所有以.txt为后缀的文件
['/home/test1/2.txt', '/home/test1/11.txt', '/home/test1/10.txt', '/home/test1/1.txt']
>>> glob.glob('/home/*/*.txt') #查找/home目录下所有以.txt为后缀的文件
['/home/test2/2.txt', '/home/test2/11.txt', '/home/test2/10.txt', '/home/test2/1.txt', '/home/test1/2.txt', '/home/test1/11.txt', '/home/test1/10.txt', '/home/test1/1.txt']
>>> glob.glob('/home/test1/1*.txt') #查找/home/test1目录下1.txt文件以及所有以1开头后跟任意1个字符的.txt为后缀的文件
['/home/test1/11.txt', '/home/test1/10.txt', '/home/test1/1.txt']
>>> glob.glob('/home/test1/1?.txt') #查找/home/test1目录下所有以1开头后跟1个字符的.txt为后缀的文件
['/home/test1/11.txt', '/home/test1/10.txt']

shutil模块

  shutil模块是对os模块中文件操作的补充,提供文件和目录的移动、复制、打包、压缩、解压等功能

  常用函数

shutil.copyfile(src, dst) 复制文件, 如果dst已存在则覆盖
shutil.move(src, dst) 移动文件或重命名
shutil.copymode(src, dst) 只拷贝权限。文件内容、组、用户均不变
shutil.copystat(src, dst) 复制权限、最后访问时间、最后修改时间
shutil.copy(src, dst) 复制一个文件到一个文件或一个目录
shutil.copy2(src, dst) 复制文件和状态信息,类似于shell中的cp –p命令
shutil.copytree(olddir, newdir, symlinks
=False, ignore=None) 递归复制文件夹
shutil.rmtree(src) 递归删除目录以及目录内的所有内容
shutil.make_archive(base_name, format,...) 创建压缩包并返回文件路径,shutil 对压缩包的处理是通过调用ZipFile 和 TarFile两个模块来进行的

  实例

>>> import shutil
>>> shutil.copy('1.txt','1_copy.txt')
>>> shutil.move('1_copy.txt','1_move.txt')

 ConfigParser模块

  configparser模块可以用于处理特定格式的配置文件。主要用到ConfigParser.ConfigParser()类。详细介绍见Python文档:ConfigParser介绍

常用函数

ConfigParser.add_section(section)    创建一个新的部分配置
ConfigParser.get(section, option, raw
=False, vars=None) 获取部分中的选项值,返回字符串
ConfigParser.getboolean(section, option) 获取部分中的选项值,返回布尔值
ConfigParser.getfloat(section, option) 获取部分中的选项值,返回浮点数
ConfigParser.getint(section, option) 获取部分中的选项值,返回整数
ConfigParser.has_option(section, option) 检查部分中是否存在这个选项
ConfigParser.has_section(section) 检查部分是否在配置文件中
ConfigParser.items(section, raw
=False, vars=None) 列表元组形式返回部分中的每一个选项
ConfigParser.options(section) 列表形式返回指定部分选项名称
ConfigParser.read(filenames) 读取ini格式的文件
ConfigParser.remove_option( section, option) 移除部分中的选项
ConfigParser.remove_section(section, option) 移除部分
ConfigParser.sections() 列表形式返回所有部分名称
ConfigParser.set(section, option, value) 设置选项值,存在则更新,否则添加
ConfigParser.write(fp) 写一个ini格式的配置文件