学习自《python编程快速上手——让繁琐的工作自动化》

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
39
40
41
42
43
44
45
46
47
48
49
import shutil

# 将路径source处的文件复制到路径destination处的文件夹,若destination是文件名,则重命名
shutil.copy(source, destination)

# 将路径source处的文件夹复制到路径destination处的文件夹
shutil.copytree(source, destination)

# 将路径source处的文件夹移动到路径destination,返回新位置的绝对路径的字符串
# 若destination是文件夹,则移入其中,并使用原来名字
# 若destination是文件,则移入其所在目录并重命名为新文件名
# 若destination不存在,则将路径最后一项视为新文件名
shutil.move(source, destination)

# 删除path处的文件
os.unlink(path)

# 删除path处的文件夹,文件夹必须为空
os.rmdir(path)

# 删除path处的文件夹,包括其包含的文件和文件夹
shutil.rmtree(path)

# 安全删除文件,将文件丢到垃圾箱,不释放内存
pip install send2trash
import send2trash
send2trash.send2trash(path)

# 遍历目录树
# walk在每次迭代中返回三个值
# 当前文件夹名称
# 当前文件夹中子文件夹的字符串列表
# 当前文件夹中文件的字符串列表
for folderName, subfolders, filenames in os.walk('C:\\delicious'):

# 压缩文件相关操作

import zipfile
zip = zipfile.ZipFile(name) # 读取zip文件, 返回zip对象
zip.namelist() # 返回zip文件中包含的所有文件和文件夹的字符串列表
zip.file_size # 压缩前大小
zip.compress_size # 压缩后大小
zip.close() # 关闭zip文件
zip.extractall(path) # 解压到当前工作目录(若无参数)或path(若添加参数)
zip.extract(name, path) # 解压name文件到path

# 添加压缩文件
zip = zipfile.ZipFile(name, 'w') # 同文件'r', 'a', 'w'
zip.write(name, compress_type = zipfile.ZIP_DEFLATED) # 第二个参数为压缩类型