python基础学习shutil高级的文件,目录,压缩包处理模块

时间:2022-01-05 03:23:38

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对象