前言
在工作中,我们经常需要复制或者移动文件,文件夹,我们可以让Python调用系统命令去帮助我们操作,或者使用python的shutil
什么是shutil?shutil模块是一个用于文件操作的高级工具集,它提供了许多方便的方法来处理文件和目录。使用shutil模块,可以执行复制、移动、重命名、删除以及归档等操作。该模块与os模块紧密相关,但提供了更高级别的接口,使得文件操作更加简单易用。
常用用法
1.文件复制
使用shutil.copy()
shutil.copy2()复制的同时保留文件的元数据(如访问时间和修改时间)
# 把 test1目录里面的test1.txt 复制到test2目录里面
>>> shutil.copy(r'D:\code\howtouseshtuil\test1\test1.txt',r'D:\code\howtouseshtuil\test2')
'D:\\code\\howtouseshtuil\\test2\\test1.txt'
# shutil.copye()保留了原始文件的创建时间,修改时间
>>> shutil.copy2(r'D:\code\howtouseshtuil\test1\test1.txt',r'D:\code\howtouseshtuil\test2\test2.txt')
'D:\\code\\howtouseshtuil\\test2\\test2.txt'
1.1 递归复制目录下面的所有内容到,指定目录(目录不存在会创建目录)
>>> shutil.copytree(r'D:\code\howtouseshtuil\test1',r'D:\code\howtouseshtuil\test3')
'D:\\code\\howtouseshtuil\\test3'
2.文件移动
使用shutil.move(src,des)移动文件,des不存在会自动创建
>>> shutil.move(r'D:\code\howtouseshtuil\test1',r'D:\code\howtouseshtuil2')
'D:\\code\\howtouseshtuil2'
3.文件删除
使用shutil.rmtree()删除目录下面的所有东西,递归删除,之前有写了一篇os模块的,里面也有删除os.rmdir(path) 只能删除空的文件夹
>>> shutil.rmtree(r'D:\code\howtouseshtuil2')
>>>
4.获取文件或目录的磁盘空间使用情况
>>> shutil.disk_usage(r'D:\code\howtouseshtuil')
usage(total=294972813312, used=111957426176, free=183015387136)
>>>
5.创建压缩文件
>>> shutil.make_archive(r"D:\code\howtouseshtuil\test2",'zip',r'D:\code\howtouseshtuil\test2')
'D:\\code\\howtouseshtuil\\test2.zip'
总结
本文主要写了以下内容
- 文件复制,shutil.copy(),shutil.copy()2,shutil.copytree()。
- 文件移动,shutil.move()。
- 文件删除shutil.rmtree(),递归删除。
- 获取文件或磁盘使用情况 shutil.disk_usage()
- 压缩文件shutil.make_archive()