Python的shutil模块常用函数

2023-01-13 08:36:22

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” 格式的压缩包;

今天又没有早起,惭愧!!!

  • 作者:拟禾
  • 原文链接:https://blog.csdn.net/weixin_46803857/article/details/122650106
    更新时间:2023-01-13 08:36:22