或许你有过这样的经历,查找一个文件夹,里面有几十、几百、甚至上千个文件,需要手动进行复制、重命名、移动或压缩,或者你需要完成下面的这些任务。
- 在一个文件夹及其子文件夹中,复制所有的PDF文件
- 针对一个文件夹中的所有文件,删除文件名中的前导0
- 将几个文件夹的内容压缩到一个ZIP文件中。
所有类似这种的繁琐任务,都能够通过Python实现自动化。
目录
1 shutil 模块
shutil模块中包含的一些函数,能够让你使用Python程序中复制、移动、重命名和删除文件。
1.1 复制文件和文件夹
- 调用shutil.copy(Spath, Epath)函数,将原路径Spath中的文件复制到目标路径Epath处的文件夹;
- 如果Epath为一个文件名,那么它将作为被复制文件的新名称;
- shutil.copy()函数返回被复制文件的路径;
- 调用shutil.copytree(Spath, Epath)函数,将原路径Spath中的文件夹(包含所有子文件及文件)复制到目标路径Epath处的文件夹;
- shutil.copytree()函数返回新复制的文件夹的路径;
ps1:使用shutil.copy()函数时,Epath为文件夹路径必须已存在
ps2:重名的文件无法被创建
import shutil, os
from pathlib import Path
p = Path.cwd() #提取当前工作目录
print(p)
#将test.txt文件复制到文件夹project中
pathnew = shutil.copy(p / 'test.txt', p / 'project' )
print('shutil.copy() 返回值:', pathnew)
#将test.txt文件复制到文件夹project中并命名为testnew.txt
pathnew = shutil.copy(p / 'test.txt', p / 'project\\testnew.txt' )
print('shutil.copy() 返回值:', pathnew)
#将project文件夹复制到文件夹project_new文件夹
pathnew = shutil.copytree(p / 'project', p / 'project_new')
print('shutil.copytree() 返回值:', pathnew)
# @梦想家LEI 2024.10.06
输出结果: