python学习之路(常用系统模块4--shutil模块)

来源:互联网 发布:男装网络营销策划书 编辑:程序博客网 时间:2024/05/29 18:54

shutil

以下方法需要import shutil

shutil.copyfileobj(fsrc, fdst, length=16384)
将文件内容拷贝到另一个文件中,可以部分内容
例:

import shutilwith open('a.txt','r',encoding='utf-8') as f1, open('copy_a','w',encoding='utf-8') as f2:    shutil.copyfileobj(f1,f2)

shutil.copyfile(src, dst, *, follow_symlinks=True)
copy文件 与copyfileobj区别是,这个方法不需要open,可以直接将文件名传给参数
例:

shutil.copyfile('a.txt','copy_a') # 实现上面例子同样的效果。

shutil.copymode(src, dst, *, follow_symlinks=True)
将权限copy给其他的文件或目录


shutil.copystat(src, dst, *, follow_symlinks=True)
将本文件属性复制给其他的目录或文件


shutil.copy(src, dst, *, follow_symlinks=True)
将文件和权限都copy给其他的文件和目录


shutil.copy2(src, dst)
将文件和状态属性都copy给其他的文件和目录


shutil.copytree(‘原文件目录’,’新文件目录’)
将文件目录,递归copy将里面所有的目录与文件都进行copy一份。


shutil.rmtree(‘文件目录’)
递归进行删除。


shutil.move(‘旧文件’,’新文件’)
递归去移动文件


shutil.make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0,dry_run=0, owner=None, group=None, logger=None)
创建压缩包并返回文件路径,例如:zip、tar

  • base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径,
    • 如:www =>保存至当前路径
    • 如:/Users/wupeiqi/www =>保存至/Users/wupeiqi/
  • format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar”
  • root_dir: 要压缩的文件夹路径(默认当前目录)
  • owner: 用户,默认当前用户
  • group: 组,默认当前组
  • logger: 用于记录日志,通常是logging.Logger对象

zipfile&tarfile

其实shutil的压缩,就是调用ZipFileTarFile 模块
这里说以下这两个模块

zipfile压缩

import zipfileZIPFILE_ZIP_FILE = zipfile.ZipFile('test.zip', 'w') # w 代表写入到这个压缩文件ZIPFILE_ZIP_FILE.write('a.txt') # 写入 a.txtZIPFILE_ZIP_FILE.write('copy_a1') # 再写入 copy_a1ZIPFILE_ZIP_FILE.close() # 记得关闭文件

这里写图片描述
生成如上的压缩文件
这里写图片描述

zipfile解压

file = zipfile.ZipFile('test.zip', 'r') # r是读zip文件file.extractall() # 解压所有file.close() # 关闭文件

tarfile压缩

与zipfile 一样的方式,

import tarfiletarfile_open= tarfile.open('test.tar', 'w')tarfile_open.add('a.txt')tarfile_open.add('copy_a1')tarfile_open.close()

tarfile解压

tarfile_open = tarfile.open('test.tar', 'r')tarfile_open.extractall() # 可设置解压地址tarfile_open.close()