python shutil.copytree

语法:

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

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

目录的权限和时间会通过copystat() 来拷贝,单个文件则会使用copy2() 来拷贝。

如果 symlinks 为真值,源目录树中的符号链接会在新目录树中表示为符号链接,并且原链接的元数据 在平台允许的情况下也会被拷贝;如果为假值或省略,则会将被链接文件的内容和元数据拷贝到新目 录树。

当 symlinks 为假值时,如果符号链接所指向的文件不存在,则会在拷贝进程的末尾将一个异常添加 到Error 异常中的错误列表。如果你希望屏蔽此异常那就将可选的 ignore_dangling_symlinks 旗标设为 真值。请注意此选项在不支持os.symlink() 的平台上将不起作用。

如果给出了 ignore,它必须是一个可调用对象,该对象将接受copytree() 所访问的目录以及os. listdir() 所返回的目录内容列表作为其参数。由于copytree() 是递归地被调用的,ignore可调用 对象对于每个被拷贝目录都将被调用一次。该可调用对象必须返回一个相对于当前目录的目录和文件 名序列(即其第二个参数的子集);随后这些名称将在拷贝进程中被忽略。ignore_patterns() 可 被用于创建这种基于glob风格模式来忽略特定名称的可调用对象。

如果发生了(一个或多个)异常,将引发一个附带原因列表的Error。

如果给出了copy_function,它必须是一个将被用来拷贝每个文件的可调用对象。它在被调用时会将源路 径和目标路径作为参数传入。默认情况下,copy2() 将被使用,但任何支持同样签名(与copy() 一 致)都可以使用。 

posted @ 2020-08-05 23:19  轩辕吊雷  阅读(7282)  评论(0编辑  收藏  举报