前言:相比Python3中的os模块,shutil模块用于文件和目录的高级处理,它提供了文件复制、移动、删除、压缩和解压;还能够快速递归处理目录及文件等功能!
环境:Windows 10、Python3、sublime text3
1、复制文件并重命名
import os
import shutil
print('复制前目录下的文件:',os.listdir('E:\\dir1\\dir3'))
print(shutil.copyfile('E:\\dir1\\dir3\\test.py','E:\\dir1\\dir3\\test5.py'))
print('复制后目录下的文件:',os.listdir('E:\\dir1\\dir3'))
2、移动文件并重命名
import os
import shutil
print('移动前目录下的文件:',os.listdir('E:\\dir1\\dir3\\'))
shutil.move('E:\\dir1\\dir3\\test5.py','E:\\dir1\\dir3\\test7.py')
print('移动后目录下的文件:',os.listdir('E:\\dir1\\dir3\\'))
3、递归删除目录及文件
import os
import shutil
print('删除前的目录:',os.listdir('E:\\dir1\\'))
print('删除前目录下的文件:',os.listdir('E:\\dir1\\dir2\\'))
shutil.rmtree('E:\\dir1\\dir2\\')
print('删除后目录下的文件:',os.listdir('E:\\dir1\\'))
4、压缩文件
import os
import shutil
print('压缩前的目录:',os.listdir('E:\\dir1\\'))
shutil.make_archive("E:\\dir1\\dir2","zip","E:\\dir1\\dir2")
print('压缩后的目录:',os.listdir('E:\\dir1\\'))
5、解压文件
import os
import shutil
print('解压前的目录:',os.listdir('E:\\dir1\\'))
shutil.unpack_archive('E:\\dir1\\dir2.zip','E:\\dir1\\dir2')
print('解压后的目录:',os.listdir('E:\\dir1\\'))
print('解压后的目录下文件:',os.listdir('E:\\dir1\\dir2'))
6、递归删除文件--判断并处理
import os
import shutil
def del_file(filepath):
del_list = os.listdir(filepath)
print('删除下列文件:',del_list)
for f in del_list:
file_path = os.path.join(filepath, f)
if os.path.isfile(file_path):
os.remove(file_path)
elif os.path.isdir(file_path):
shutil.rmtree(file_path)
if __name__ == '__main__':
print('递归删除前的目录:',os.listdir('E:\\dir1\\dir2\\'))
del_file("E:\\dir1\\dir2\\")
print('递归删除后的目录:',os.listdir('E:\\dir1\\dir2\\'))