shutil模块

import shutil

copyfileobj(fsrc, fdst[, length=16*1024]) 复制文件 (length的单位是字符(表达一次读多少字符/字节))

"""
fp_src = open("3.txt",mode="r",encoding="utf-8")
fp_dst = open("4.txt",mode="w",encoding="utf-8")
shutil.copyfileobj(fp_src,fp_dst)
"""

copyfile(src,dst) #单纯的仅复制文件内容 , 底层调用了 copyfileobj

shutil.copyfile("4.txt","5.txt")

copymode(src,dst) #单纯的仅复制文件权限 , 不包括内容 (虚拟机共享目录都是默认777)

"""注意: 要先有两个文件才可以,不会默认创建"""
shutil.copymode("4.txt","5.txt")

copystat(src,dst) #复制所有状态信息,包括权限,组,用户,修改时间等,不包括内容

shutil.copystat("4.txt","5.txt")

copy(src,dst) #复制文件权限和内容

shutil.copy("5.txt","6.py")

copy2(src,dst) #复制文件权限和内容,还包括权限,组,用户,时间等

shutil.copy2("5.txt","7.py")

copytree(src,dst) #拷贝文件夹里所有内容(递归拷贝)

shutil.copytree("lianxi","lianxi2")

rmtree(path) #删除当前文件夹及其中所有内容(递归删除)

shutil.rmtree("lianxi2")

move(path1,paht2) #移动文件或者文件夹

shutil.move("7.py","lianxi/888.php")
shutil.move("7.py","/888.php")

shutil.make_archive(base_name, format,...)

创建压缩包并返回文件路径,例如:zip、tar
创建压缩包并返回文件路径,例如:zip、tar
base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径,
如 data_bak                       =>保存至当前路径
如:/tmp/data_bak =>保存至/tmp/
format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar”
root_dir: 要压缩的文件夹路径(默认当前目录)
owner: 用户,默认当前用户
group: 组,默认当前组
logger: 用于记录日志,通常是logging.Logger对象

#将 /data 下的文件打包放置当前程序目录
import shutil
ret = shutil.make_archive("data_bak", 'gztar', root_dir='/data')


#将 /data下的文件打包放置 /tmp/目录
import shutil
ret = shutil.make_archive("/tmp/data_bak", 'gztar', root_dir='/data')