目录和文件操作
归档操作
shutil 模块对文件和文件集合提供了许多高级操作, 特别是提供了支持文件复制和删除的函数.
目录和文件操作
shutil.copyfileobj(fsrc, fdst[, length]): 拷贝文件内容到另一个文件, 可以指定拷贝的大小.
- # 拷贝 test1 的内容到 test2
- >>> shutil.copyfileobj(open('test1'),open('test2','w'))
shutil.copyfile(src, dst): 拷贝文件, 不包含元数据.
shutil.copymode(src, dst): 仅拷贝文件权限, 对文件内容, 用户和组不影响.
shutil.copystat(src, dst): 仅拷贝文件权限, 最后访问时间, 最后修改时间, 对文件内容, 用户和组不影响.
shutil.copy(src, dst): 拷贝文件数据和权限, 不含文件的创建时间和修改时间.
shutil.copy2(src, dst): 拷贝文件, 包含元数据
shutil.ignore_patterns(*patterns): 忽略指定的文件, 通常和 copytree 配合使用
shutil.copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, ignore_dangling_symlinks=False): 递归复制目录及其子目录的文件和状态信息.
- # 递归复制 Python3 目录中的文件到 Python4 中, 其中忽略以点 m4 和 py 结尾的文件.
- >>> shutil.copytree('Python3','Python4',ignore=shutil.ignore_patterns('*.m4','*.py'))
shutil.rmtree(path): 递归删除目录
shutil.move(src, dst, copy_function=copy2): 递归移动文件或者目录, 如 mv
shutil.disk_usage(path): 以元组的形式返回一个磁盘统计信息 (total,used,free)
shutil.chown(path, user=None, group=None): 改变 path 的用户和组
shutil.which(cmd): 返回执行 cmd 的绝对路径, 类似于 shell 中的 which cmd
归档操作
shutil.make_archive(base_name, format[, root_dir[, base_dir[, verbose[, dry_run[, owner[, group[, logger]]]]]]]): 打包文件或者压缩文件, 如 tar,zip.
base_name: 打包后的文件名
format: 压缩格式, 如: zip,tar,gztar,bztar,xztar
root_dir: 打包的根目录
base_dir: 要进行压缩的源文件或者目录, root_dir 和 base_dir both 默认为当前目录
dry_run: 如果为 True, 打包文件将不会创建, 但是会进行日志记录
owner,group: 指定用户和组, 默认是当前环境用户和组
logger: 用于记录日志, 通常是 logging.Logger 的一个实例
shutil.get_archive_formats(): 返回支持的归档格式的列表
shutil.unpack_archive(filename[, extract_dir[, format]]): 解压缩一个归档文件
filename: 压缩文档的绝对路径
extract_dir: 解压缩路径, 默认当前目录
format: 压缩格式, 默认使用文件后缀名的格式
shutil.get_unpack_formats(): 返回支持解压缩格式的列表
来源: http://www.bubuko.com/infodetail-3037256.html