文章目录
shutil 模块提供了一系列对文件和文件集合的高阶操作。 特别是提供了一些支持文件拷贝和删除的函数。
目录和文件操作
1. shutil.copyfileobj(fsrc, fdst[, length])
将文件类对象 fsrc 的内容拷贝到文件类对象 fdst。 整数值 length 如果给出则为缓冲区大小。 特别地, length 为负值表示拷贝数据时不对源数据进行分块循环处理;默认情况下会分块读取数据以避免不受控制的内存消耗。 请注意如果 fsrc 对象的当前文件位置不为 0,则只有从当前文件位置到文件末尾的内容会被拷贝。
2. shutil.copyfile(src, dst, *, follow_symlinks=True)
将名为 src 的文件的内容(不包括元数据)拷贝到名为 dst 的文件并以尽可能高效的方式返回 dst。 src 和 dst 均为路径类对象或以字符串形式给出的路径名。
dst 必须是完整的目标文件名;对于接受目标目录路径的拷贝请参见 copy()。 如果 src 和 dst 指定了同一个文件,则将引发 SameFileError。
目标位置必须是可写的;否则将引发 OSError 异常。 如果 dst 已经存在,它将被替换。 特殊文件如字符或块设备以及管道无法用此函数来拷贝。
如果 follow_symlinks 为假值且 src 为符号链接,则将创建一个新的符号链接而不是拷贝 src 所指向的文件。
引发一个 审计事件 shutil.copyfile 附带参数 src, dst。
3.shutil.copymode(src, dst, *, follow_symlinks=True)
从 src 拷贝权限位到 dst。 文件的内容、所有者和分组将不受影响。 src 和 dst 均为路径类对象或字符串形式的路径名。 如果 follow_symlinks 为假值,并且 src 和 dst 均为符号链接,copymode() 将尝试修改 dst 本身的模式(而非它所指向的文件)。 此功能并不是在所有平台上均可用;
4.shutil.copystat(src, dst, *, follow_symlinks=True)
从 src 拷贝权限位、最近访问时间、最近修改时间以及旗标到 dst。 在 Linux上,copystat() 还会在可能的情况下拷贝“扩展属性”。 文件的内容、所有者和分组将不受影响。 src 和 dst 均为路径类对象或字符串形式的路径名。
如果 follow_symlinks 为假值,并且 src 和 dst 均指向符号链接,copystat() 将作用于符号链接本身而非该符号链接所指向的文件 — 从 src 符号链接读取信息,并将信息写入 dst 符号链接。
5.shutil.copy(src, dst, *, follow_symlinks=True)
将文件 src 拷贝到文件或目录 dst。 src 和 dst 应为字符串。 如果 dst 指定了一个目录,文件将使用 src 中的基准文件名拷贝到 dst。 返回新创建文件的路径。
如果 follow_symlinks 为假值且 src 为符号链接,则 dst 也将被创建为符号链接。 如果 follow_symlinks 为真值且 src 为符号链接,dst 将成为 src 所指向的文件的一个副本。
copy() 会拷贝文件数据和文件的权限模式 (参见 os.chmod())。 其他元数据,例如文件的创建和修改时间不会被保留。 要保留所有原有的元数据,请改用 copy2() 。
引发一个 审计事件 shutil.copyfile 附带参数 src, dst。
引发一个 审计事件 shutil.copymode 附带参数 src, dst。
未完,内容转载于该链接:https://docs.python.org/zh-cn/3/library/shutil.html