shutil模块

shutil是一个高级的文件、文件夹、压缩包、处理模块
 
shutil.copyfileobj(fsrc,fdes,length) 将文件内容拷贝到另一个文件中,可以只拷贝部分内容,需要我们自行打开文件对象进行copy
 
shutil.copyfile(fsrc,fdes) 复制文件,我们只需要传入文件名称即可进行复制,不用自行预先打开,等于创建一个新的文件,把老文件写入到新文件中然后关闭,新创建的文件权限和属主等信息遵循操作系统规定
 
shutil.copymode(src,des) 复制文件权限,既把src文件的权限复制给 des文件,只改变权限,不改变其他比如属组,内容等(des文件必须存在)
 
shutil.copystat(src,des) 复制文件的权限,还包括,atime,mtime,flags等信息,不改变文件内容(des需存在)
 
shutil.copy2(src,des) 复制文件的同时复制权限信息(等于shutil.copyfile + shutil.copystat)
 
shutil.copytree(des,src) 递归复制文件,类似于copy -r
 
shutil.rmtree(des)  递归的删除文件,类似于 rm -rf
 
shutil.move(src,'des) 移动文件/目录,类似于mv 命令
 
shutil.make_archive('压缩后的文件名称',‘压缩类型’,‘源目录’,‘other parameter’) 对源目录进行压缩(只能对目录进行压缩)
  名称可以是直接是文件名或者,如果是路径的话,默认最后一个名称为包名
  压缩类型有:zip、tar、bztar、gztar
  other_paramter:其他参数有,指定压缩后的用户,用户组,logger记录日志等
 
  扩展:make_archive其实是调用zipfile和tarfile两个模块来完成压缩和解压缩的
  zipfile模块压缩:
  z = zipfile.ZipFile('test.zip','w') -->创建一个压缩文件,以写模式打开
  z.write('a.log') -->把要压缩的文件名称,写入压缩文件
  z.write('b.log')
  z.close() -->关闭压缩文件
  zipfile模块解压缩:
  z = zipfile.ZipFile('test.zip','r') -->打开压缩文件
  z.extractall() -->解压缩,这里可以设置解压地址
  z.close()
 
  tarfile模块压缩:
  t = tarfile.open('test.tar','w')
  tar.add('test.txt')
  t.close()
  tarfile模块解压缩:
  t = tarfile.open('123.tar','r')
  t.extectall() -->解压tar文件
  t.close()
 
 
原文地址:https://www.cnblogs.com/dachenzi/p/6661558.html