shutil 模块:文件复制.移动.压缩.解压.递归删除文件夹

时间:2021-12-06 03:59:20
print('常用模块')
## shutil 模块

import shutil

# # 1,基于路径的文件复制:
# shutil.copyfile('source_file', 'target_file')
##应用:
shutil.copy(r'D:\pythonstudy\作业\DAY9作业孙志平\植物大战僵尸\read_me',r'D:\pythonstudy\作业\DAY9作业孙志平\read_me2')
###第一个位置写要需要拷贝的文件路劲,第二个位置写需要拷贝到的目标文件路径,具体到文件名,可以修改文件名

# # 2,基于流的文件复制:
# with open('source_file', 'rb') as r, open('target_file', 'wb') as w:
# shutil.copyfileobj(r, w)

with open(r'D:\pythonstudy\作业\DAY9作业孙志平\read_me2', 'rb') as r, open(r'D:\pythonstudy\作业\DAY9作业孙志平\read_me3', 'wb') as w:
shutil.copyfileobj(r, w)
####这个和第一个的功能可以说是相同的

# # 3,递归删除目标目录
# shutil.rmtree('target_folder')
##这个的功能就是删除指定文件夹,不管这个文件夹下面有多少个文件以及多少个子文件夹


# # 4,文件移动
# shutil.move('old_file', 'new_file')
#
# shutil.move(r'D:\pythonstudy\作业\DAY9作业孙志平\植物大战僵尸\read_me4',r'D:\pythonstudy\作业\DAY9作业孙志平\植物大战僵尸\read_me8')
##直接将原来的文件,移动到另一个路径中去


# 5,文件夹压缩
# file_name: 压缩后得到的文件名
# format:压缩格式 一般填写 zip
# archive_path:要压缩的文件夹路径
# shutil.make_archive('file_name', 'format', 'archive_path')
###压缩后得到的压缩文件一般就存放在此运行文件的同一级
# shutil.make_archive('szp.zip', 'zip',r'D:\pythonstudy\作业\DAY9作业孙志平\植物大战僵尸\111')

# # 文件夹解压
# unpack_file: 解压的文件
# unpack_name:解压得到的文件夹名
# format:解压格式
# shutil.unpack_archive('unpack_file', 'unpack_name', 'format')
##shutil.unpack_archive('target/abc.zip', 'target/xyz', 'zip')
##解压格式一般也是zip