前言
我们在日常处理文件时,经常用到os模块,但是有的时候你会发现,像拷贝、删除、打包、压缩等文件操作,在os模块中没有对应的函数去操作,下面我们就来讲讲高级的 文件、文件夹、压缩包 处理模块:shutil
shutil模块
shutil.copyfileobj(fsrc,fdst)
功能:把一个文件的内容拷贝到另外一个文件中,可以是部分文件内容。
with
open
(
"f_old"
,
'r'
,encoding
=
"utf-8"
) as f1,
open
(
"f_new"
,
"w"
,encoding
=
"utf-8"
) as f2:
shutil.copyfileobj(f1,f2)
#拷贝文件的内容
shutil.copyfile(src, dst)
功能:拷贝文件的文件权限
shutil.copystat(src, dst)
功能:拷贝文件的状态信息,如:mode bits, atime, mtime, flags
shutil.copy(src, dst)
功能:拷贝文件和文件的权限
shutil.copy2(src, dst)
功能:拷贝文件和文件的状态
shutil.copytree(src, dst)
功能:递归的去拷贝文件,相当于cp -r
shutil.rmtree(path[, ignore_errors[, onerror]])
功能:递归的去删除文件,相当于:rm -fr
shutil.move(src, dst)
功能:递归的去移动文件 相当于:mv
shutil.make_archive((base_name, format, root_dir=None,base_dir=None,verbose=0,dry=0,owner=None,group=None,logger=None)
功能:创建压缩包并且返回文件路径,例如:zip,tar
- base_name : 压缩包的文件名,也可以是压缩包的路径。只是文件名,则保存当前目录,否则保存到指定路径。
- format:压缩包种类,'zip','tar','bztar','gztar'
- root_dir:需要压缩的文件夹路径(默认当前路径)
- owner:用户,默认当前用户
- group:组,默认当前组
- logger:用于记录日志,通常是logging.Logger对象
-
功能:创建压缩包并且返回文件路径,例如:zip,tar
- base_name : 压缩包的文件名,也可以是压缩包的路径。只是文件名,则保存当前目录,否则保存到指定路径。
- format:压缩包种类,'zip','tar','bztar','gztar'
- root_dir:需要压缩的文件夹路径(默认当前路径)
- owner:用户,默认当前用户
- group:组,默认当前组
- logger:用于记录日志,通常是logging.Logger对象