Python——shutil模块

shutil 模块

shutil 模块提供了一个易于使用的高级接口,用于处理文件、文件夹、压缩包、处理模块等


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 将文件内容拷贝到另一个文件中
# shutil.copyfileobj(fsrc,fdst[,length])
>>> import shutil
>>> shutil.copyfileobj(open('old.txt','r'),open('new.txt','w'))

# 拷贝文件 和 shutil.copyfileobj(fsrc,fdst[,length]) 差不多
# shutil.copyfile(src,dst)
>>> shutil.copyfile('old.txt','new.txt') # 目标无需存在

# 仅拷贝权限,内容、组、用户均不变
# shutil.copymode(src,dst)
>>> shutil.copymode('old.txt','new.txt') # 目标文件必须存在

# 拷贝文件和权限
# shutil.copy(src,dst)
>>> shutil.copy('old.txt','new.txt')

# 拷贝文件和状态信息
# shutil.copy2(src,dst)
>>> shutil.copy2('old.txt','new.txt')

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

>>> shutil.make_archive('compression','zip',r'\a\b\c')
>>> shutil.make_archive('compression1','rar',r'\a\b\c')

# shutil直接解压
>>> shutil.unpack_archive('\a\b\c\compression.zip')