一、简介
shutil是Python标准库中的一个模块,提供了一些用于文件和目录操作的高级函数。它是"shell utilities"(即shell实用程序)的缩写,旨在简化常见的文件和目录操作任务。
shutil模块提供了一些功能强大且易于使用的函数,例如复制文件和目录、移动文件和目录、删除文件和目录等。它还提供了一些其他功能,如创建符号链接、改变文件权限等。
二、相关函数
1.shutil.copytree(src,…,dirs_exist_ok=False):递归地复制整个目录树。
- src:源目录的路径。
- dst:目标目录的路径。
- symlinks:是否复制符号链接本身。
- ignore:回调函数,用于指定要忽略的文件和目录。
- copy_function:复制函数,控制如何复制文件。
- ignore_dangling_symlinks:是否忽略指向不存在目标的符号链接。
- dirs_exist_ok:是否允许目标目录已存在。
2.shutil.copy(src, dst, follow_symlinks=True):复制文件。 - src:源文件的路径。
- dst:目标文件的路径。
- follow_symlinks:是否复制符号链接指向的文件。
3.shutil.rmtree(path, …, dir_fd=None):递归地删除整个目录树。 - path:要删除的目录的路径。
- ignore_errors:是否忽略错误。
- onerror:错误处理的回调函数。
- dir_fd:目录文件描述符。
4.shutil.copyfile(src, dst, follow_symlinks=True):复制文件内容。 - src:源文件的路径。
- dst:目标文件的路径。
- follow_symlinks:是否复制符号链接指向的文件。
5.shutil.move(src, dst, copy_function=copy2):移动文件或目录。 - src:源文件或目录的路径。
- dst:目标位置的路径。
- copy_function:复制函数,控制如何复制文件。
6.shutil.chown(path, user=None, group=None):更改文件或目录的所有者和/或组。 - path:文件或目录的路径。
- user:新的所有者用户名。
- group:新的组名。
7.shutil.copy2(src, dst, follow_symlinks=True):复制文件,并尽可能地保留源文件的元数据。 - src:源文件的路径。
- dst:目标文件的路径。
- follow_symlinks:是否复制符号链接指向的文件。
8.shutil.copyfileobj(fsrc, fdst, length=16*1024):将一个文件对象的内容复制到另一个文件对象。 - fsrc:源文件对象。
- fdst:目标文件对象。
- length:每次读取的字节数。
9.shutil.copymode(src, dst, follow_symlinks=True):复制源文件的权限位(模式)到目标文件。 - src:源文件的路径。
- dst:目标文件的路径。
- follow_symlinks:是否复制符号链接指向的文件。
10.shutil.copystat(src, dst, follow_symlinks=True):复制源文件的状态(权限位、最后访问时间等)到目标文件。 - src:源文件的路径。
- dst:目标文件的路径。
- follow_symlinks:是否复制符号链接指向的文件。
三、异常类,用于捕获异常
1.shutil.Error:表示在shutil模块的操作中发生的一般错误。
2.shutil.ExecError:表示在执行外部命令时发生的错误。
3.shutil.ReadError:表示在读取归档文件时发生的错误。
4.shutil.RegistryError:表示在注册表操作中发生的错误。
5.shutil.SameFileError:表示在尝试将文件复制到其自身时发生的错误。
6.shutil.SpecialFileError:表示在处理特殊文件(如设备文件或管道)时发生的错误。