模块-shutil

高级的文件、文件夹、压缩包处理

  • shutil.copyfileobj(fsrc,fdst,[length])  #length表示每次读多少
    f1=open('f1.txt','r')
    f2=open('f2.txt','w')
    shutil.copyfileobj(f1,f2)
    f1.close()
    f2.close()

  • shutil.copyfiel(src,dst)  #拷贝两个文件,无需打开
  • shutil.copymode(src,dst)  #仅拷贝权限,内容、组、用户均不变
  • shutil.copystat(src,dst)  #拷贝状态信息,包括utime,chmod,chflags等
  • shutil.copy(src,dst)  #拷贝文件和权限
  • shutil.copy2() #拷贝文件和状态信息
  • shutil.copytree(src,dst,symlinks=False,lgnore=None) #递归拷贝目录和文件,symlinks表示是否拷贝软链接,lgnore表示忽略那些文件,ignore=shutil.ignore_patterns("__init__.py","__init__..pyc")
    shutil.copytree('d1','d2')

  • shutil.rmtree(path,[ignore_errors])  #递归删除目录,ignore_errors忽略错误
  • shutil.move(srt,dst)  #递归移动文件
    shutil.move('d1','d11')

  • shutil.make_archive(base_name,format....)  #创建压缩文件,归档
    • base_name:压缩包的文件名,无需后缀,也可以包含压缩包存储路径。只是文件名,则保存到当前目录,否则保存到指定路径
    • format:压缩包格式,"zip","tar","bztar","gztar"
    • root_dir:要压缩的文件夹路径,默认当前目录
    • owner:用户,默认当前用户
    • group:用户组,默认当前用户组
    • logger:用于记录日志,通常为loggin.Logger对象
      shutil.make_archive('D:\d11',"zip",root_dir="C:Python36d11")
      'D:\d11.zip'

  • shutil文件压缩是封装ZipFile和TarFile两个模块来实现
    #这里write添加文件夹,不会自动添加文件夹中的文件
    z=zipfile.ZipFile('test.zip','w')
    z.write('d11')
    z.write('Scripts')
    z.close()

     解压:

    z=zipfile.ZipFile('test.zip','r')
    z.extractall()
    z.close()

    TarFile,只打包,不压缩

    import tarfile
    f=tarfile.open('test.tar','w')
     f.add(r"C:Python36Scripts")#没加arcname参数,默认将路径也同步打包。可自定义名称,如pack_test
    f.add(r"C:Python36Doc")
    f.close()

原文地址:https://www.cnblogs.com/yaya625202/p/8763525.html