失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【Python】拷贝或移动文件和目录

【Python】拷贝或移动文件和目录

时间:2019-10-21 22:40:39

相关推荐

【Python】拷贝或移动文件和目录

拷贝或移动文件和目录

shutil 模块提供了一系列对文件和文件集合的高阶操作。 特别是提供了一些支持文件拷贝和删除的函数。

shutil.copyfileobj(fsrc, fdst[, length]),将文件对象fsrc的内容从当前位置开始复制到fdst文件中。

>>> a = open('file1', 'r')>>> b = open('file2', 'w')>>> shutil.copyfileobj(a, b, 20)>>> a.close()>>> b.close()

shutil.copyfile(src, dst, *, follow_symlinks=True),将名为src的文件的内容拷贝到名为dst的文件中。src, dst是字符串形式的路径名。

>>> shutil.copyfile('file1', 'file2')'file2'>>>

shutil.copymode(src, dst, *, follow_symlinks=True),将src的权限拷贝到dst文件,其它信息不变。shutil.copystat(src, dst, *, follow_symlinks=True),从src拷贝权限位、最近访问时间、最近修改时间以及旗标到dst。 在 Linux上,copystat()还会在可能的情况下拷贝“扩展属性”。 文件的内容、所有者和分组将不受影响。shutil.copy(src, dst, *, follow_symlinks=True),拷贝文件srcdst。如果dst是一个目录,则创建一个新的文件。如果dst是一个文件路径,则被替换。函数返回新文件的路径。该函数会拷贝文件的文件数据和权限,其它数据不会保留。

>>> shutil.copy('file1', 'file2')'file2'

shutil.copy2(src, dst, *, follow_symlinks=True),类似shutil.copy(),区别是该函数会保留文件的元数据。

shutil.ignore_patterns(*patterns),这个工厂函数会创建一个函数,它可被用作copytree()ignore可调用对象参数,以忽略那些匹配所提供的 glob 风格的 patterns 之一的文件和目录。

shutil.copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, ignore_dangling_symlinks=False, dirs_exist_ok=False),以递归方式将根植于 src 的整个目录树复制到名为dst的目录,并返回目标目录。默认情况下,还将创建包含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()一致)都可以使用。

shutil.rmtree(path, ignore_errors=False, onerror=None),返回一个完整的目录树;path必须指向一个目录。 如果 ignore_errors 为真值,删除失败导致的错误将被忽略;如果为假值或是省略,此类错误将通过调用由 onerror 所指定的处理程序来处理,或者如果此参数被省略则将引发一个异常。

shutil.move(src, dst, copy_function=copy2),递归地将一个文件或目录 (src) 移至另一位置 (dst) 并返回目标位置。如果目标是已存在的目录,则 src 会被移至该目录下。 如果目标已存在但不是目录,它可能会被覆盖,具体取决于 os.rename() 的语义。

如果觉得《【Python】拷贝或移动文件和目录》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。