shutil模块详解 该文主要讲解了如下几方面:
文件的复制
-
函数:shutil.copy(src,dst)
-
含义:复制文件;
-
参数:src表示源文件,dst表示目标文件夹;
-
注意:当移动到一个不存在的“目标文件夹”,系统会将这个不存在的“目标文件夹”识别为新的文件夹,而不会报错;
文件夹的复制
-
函数:shutil.copytree(src,dst)
-
含义:复制文件夹;
-
参数:src表示源文件夹,dst表示目标文件夹;
-
注意:
-
这里只能是移动到一个空文件夹,而不能是包含其他文件的非空文件夹,否则会报错PermissionError;
-
如果指定任意一个目标文件夹,则会自动创建
-
文件或文件夹的移动
-
函数:shutil.move(src,dst)
-
含义:移动文件/文件夹; – 参数:src表示源文件/文件夹,dst表示目标文件夹;
-
注意:文件/文件夹一旦被移动了,原来位置的文件/文件夹就没了。目标文件夹不存在时,会报错;
文件夹的删除
-
函数:shutil.rmtree(src)
-
含义:删除文件夹;
-
参数:src表示源文件夹;
-
注意:区别这里和os模块中remove()、rmdir()的用法,remove()方法只能删除某个文件,mdir()只能删除某个空文件夹。但是shutil模块中的rmtree()可以递归彻底删除非空文件夹;
压缩包的创建和解压
-
zipobj.write():创建一个压缩包;
-
zipobj.namelist():读取压缩包中的文件信息;
-
zipobj.extract():将压缩包中的单个文件,解压出来;
-
注意:目标文件夹不存在,会自动创建
-
-
zipobj.extractall():将压缩包中所有文件,解压出来;
-
注意:目标文件夹不存在,会自动创建
-
-
shutil 模块对压缩包的处理是调用 ZipFile 和 TarFile这两个模块来进行的,因此需要导入这两个模块;
-
注意:这里所说的压缩包,指的是“.zip”格式的压缩包;