shutil可以简单地理解为sh + util,shell工具的意思。
shutil模块是对os模块的补充,主要针对文件的拷贝、删除、移动、压缩和解压操作。
拷贝文件, shutil会自动识别拷贝的到底是文件还是文件夹, 如果存在同名的文件将会自动进行覆盖。
模块导入
import shutil
复制文件
函数:shutil.copy(src,dst)
含义:复制文件;
参数:src表示源文件,dst表示目标文件夹;
注意:当移动到一个不存在的“目标文件夹”,系统会将这个不存在的“目标文件夹”识别为新的文件夹,而不会报错;
src = r"D:\Desktop\guo\111\yun.txt"
dst = r"D:\Desktop\guo\222"
shutil.copy(src, dst)
复制文件夹
函数:shutil.copytree(src,dst)
含义:复制文件夹;
参数:src表示源文件夹,dst表示目标文件夹;
注意:这里只能是移动到一个空文件夹,而不能是包含其他文件的非空文件夹,否则会报错 PermissionError;
① 如果目标文件夹中存在其他文件,会报错;
② 如果指定任意一个目标文件夹,则会自动创建;
移动文件或文件夹
函数:shutil.move(src,dst)
含义:移动文件/文件夹;
参数:src表示源文件/文件夹,dst表示目标文件夹;
注意:文件/文件夹一旦被移动了,原来位置的文件/文件夹就没了。目标文件夹不存在时, 会报错;
递归删除文件夹(慎用)
函数:shutil.rmtree(src)
含义:删除文件夹;
参数:src表示源文件夹;
注意:区别这里和os模块中remove()、rmdir()的用法,remove()方法只能删除某个文件,rmdir()只能删除某个空文件夹。但是shutil模块中的rmtree()可以递归彻底删除非空文件夹;
创建和解压压缩包(使用较少)
zipobj.write():创建一个压缩包;
zipobj.namelist():读取压缩包中的文件信息;
zipobj.extract():将压缩包中的单个文件,解压出来;
zipobj.extractall():将压缩包中所有文件,解压出来;
shutil 模块对压缩包的处理是调用 ZipFile 和 TarFile这两个模块来进行的,因此需要导入这两个模块;
注意:这里所说的压缩包,指的是 “.zip” 格式的压缩包;
今天又没有早起,惭愧!!!