shutil高级的文件,目录,压缩包处理模块
import shutil
复制
shutil.copyfileobj(f1,f2) #从一个文件对接复制到另一个文件对象,需要先打开文件
shutil.copyfile() #拷贝文件
shutil.copystat() #只拷贝文件状态信息 包括 modebits,atime,mtime,flags
shutil.copymode() #值拷贝权限。内容和组,用户均不改变
shutil.copy() #拷贝文件和权限
shutil.copy2() #同时拷贝文件和状态信息
shutil.copytree() #递归拷贝文件或目录
shutil.rmtree() #递归删除文件或目录
shutil.move() #移动文件
压缩包
shutil.make_archive(base_name,format,..) 创建压缩包并返回文件路径
base_name 压缩包的文件名
format:压缩包的种类 ("zip","tar","gztar","bztar")
root_dir:压缩的文件路径
owner:用户,默认当前用户
group:组,默认当前组
logger:用于记录日志,通常是logging.logger对象
例:shutil.make_archive("www","gztar",root_dir="/home/www")
shutil对压缩包的处理是调用了zipfile和tarfile 两个模块来进行处理
使用这两个模块进行解压缩
import zipfile
z = zipfile.zipfile(‘www/zip‘,‘r‘)
z.extractall()
z.close
import tarfile
tar = tarfile.open(‘www.tar‘,‘r‘)
tar.extractall()
tar.close
import gzip import os def un_gz(file_name): """ungz zip file""" f_name = file_name.replace(".gz", "") #获取文件的名称,去掉 g_file = gzip.GzipFile(file_name) #创建gzip对象 open(f_name, "w+").write(g_file.read()) #gzip对象用read()打开后,写入open()建立的文件里。 g_file.close() #关闭gzip对象