Python标准库之shutil模块

高级的文件、文件夹、压缩包处理模块。

文件复制

copyfileobj

将文件类对象 fsrc 的内容拷贝到文件类对象 fdst。

shutil.copyfileobj(fsrc, fdst[, length])

  

代码演示:

import shutil

f1 = open("test.txt",'r')
f2 = open("white.txt",'w')
shutil.copyfileobj(f1,f2)

  

copyfile

将名为 src 的文件的内容(不包括元数据)拷贝到名为 dst 的文件并以尽可能高效的方式返回 dst。 src 和 dst 均为路径类对象或以字符串形式给出的路径名。

shutil.copyfile(src, dst, *, follow_symlinks=True)

  

代码演示:

shutil.copyfile("white.txt","test.txt")

  

copymode

仅拷贝权限。内容、组、用户不变。

从 src 拷贝权限位到 dst。 文件的内容、所有者和分组将不受影响。 src 和 dst 均为路径类对象或字符串形式的路径名。

shutil.copymode(src, dst, *, follow_symlinks=True)

  

copystat

从 src 拷贝权限位、最近访问时间、最近修改时间以及旗标到 dst。 在 Linux上,copystat() 还会在可能的情况下拷贝“扩展属性”。 文件的内容、所有者和分组将不受影响。 src 和 dst 均为路径类对象或字符串形式的路径名。没拷贝文件!!

shutil.copystat(src, dst, *, follow_symlinks=True)

  

copy

拷贝文件和权限。

将文件 src 拷贝到文件或目录 dst。 src 和 dst 应为字符串。 如果 dst 指定了一个目录,文件将使用 src 中的基准文件名拷贝到 dst。 返回新创建文件的路径。

shutil.copy(src, dst, *, follow_symlinks=True)

  

copy2

拷贝文件和文件状态。

shutil.copy2(src, dst, *, follow_symlinks=True)

  

目录复制与删除

copytree

递归地去拷贝目录。

将以 src 为根起点的整个目录树拷贝到名为 dst 的目录并返回目标目录。 dirs_exist_ok 指明是否要在 dst 或任何丢失的父目录已存在的情况下引发异常。

shutil.copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, ignore_dangling_symlinks=False, dirs_exist_ok=False)

  

rmtree

递归删除目录。

删除一个完整的目录树;path 必须指向一个目录(但不能是一个目录的符号链接)。

shutil.rmtree(path, ignore_errors=False, onerror=None)

  

move

递归地将一个文件或目录 (src) 移至另一位置 (dst) 并返回目标位置。如果目标是已存在的目录,则 src 会被移至该目录下。

shutil.move(src, dst, copy_function=copy2)

  

归档操作

make_archive

创建压缩包并返回文件路径,如zip、tar。

shutil.make_archive(base_name, format[, root_dir[, base_dir[, verbose[, dry_run[, owner[, group[, logger]]]]]]])

base_name 是要创建的文件名称,包括路径,去除任何特定格式的扩展名。 format 是归档格式:为 "zip" (如果 zlib 模块可用), "tar", "gztar" (如果 zlib 模块可用), "bztar" (如果 bz2 模块可用) 或 "xztar" (如果 lzma 模块可用) 中的一个。

root_dir 是一个目录,它将作为归档文件的根目录;例如,我们通常会在创建归档文件之前用 chdir 命令切换到 root_dir。

base_dir 是我们要执行归档的起始目录;也就是说 base_dir 将成为归档文件中所有文件和目录共有的路径前缀。

import shutil
shutil.make_archive("new.zip","zip",r"C:/Users/admin/PycharmProjects/shodan/module/")

  

猜你喜欢

转载自www.cnblogs.com/endust/p/12309970.html