蒹葭苍苍,白露为霜。
所谓伊人,在水一方。

Python shutil模块--文件操作

本模块主要提供了一些对文件和多个文件的高级操作,比如文件的拷贝功能、文件的删除功能。如果只是想对一个文件进行操作,使用os模块操作就可以了。不过要值得注意的一点是本模块里拷贝文件和删除文件,在有一些情况下系统的元数据没有办法拷贝和删除。

8.8.1 目录和文件操作

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

拷贝文件类似的对象fsrc的内容到目标对象fdst。参数length是指明缓冲区的大小,如果是负数表示整个文件读取;默认值是读取一块磁盘大小的数据,不会占用太多内存。如果对文件对象操作完成之后,再想从头读取文件对象,需要调整文件对象的位置指针。

例子:

#python 3.4

import shutil

src = ‘F:\\temp\\py\\codecs1.py’

dst = ‘F:\\temp\\py\\test888.py’

with open(src, ‘rb’) as fsrc:

    with open(dst, ‘wb’) as fdst:

        shutil.copyfileobj(fsrc, fdst, 100)

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

拷贝文件名称为src的内容到文件dst,返回dst文件路径。

例子:

#python 3.4

import shutil

src = ‘F:\\temp\\py\\codecs1.py’

dst = ‘F:\\temp\\py\\test888.py’

print(shutil.copyfile(src, dst))

结果输出如下:

F:\temp\py\test888.py

exception shutil.SameFileError

当调用函数copyfile()时,如果源文件与目标文件一样时,就会抛出这个异常。

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

拷贝文件的权限位,不影响文件的内容、拥有关系和组关系。

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

拷贝文件的权限位、最后访问时间、最后修改时间和标志,不影响文件的内容、拥有关系和组关系。

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

拷贝文件src到文件或者目录dst。如果dst是目录,拷贝文件到目录里面。参数follow_symlinks为false,表示如果源文件是一个符号连接,目标也拷贝一个符号连接;如果为true,即使源文件是一个符号连接,也会拷贝源文件。

例子:

#python 3.4

import shutil

src = ‘F:\\temp\\py\\codecs1.py’

dst = ‘F:\\temp\\py\\dir1’

print(shutil.copy(src, dst))

结果输出如下:

F:\temp\py\dir1\codecs1.py

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

与copy函数一样的功能,只不过它会尽量拷贝所有文件相关的元数据。

shutil.ignore_patterns(*patterns)

用来创建一个忽略参数ignore,以便copytree()函数遍历文件时可以忽略的参数、文件和目录。

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

递归地完全地拷贝一个目录到另外一个目录。

例子:

#python 3.4

import shutil

src = ‘F:\\temp\\py\\dir1’

dst = ‘F:\\temp\\py\\dir2\\1’

print(shutil.copytree(src, dst))

结果输出如下:

F:\temp\py\dir2\1

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

删除整个目录树,路径必须是一个目录而不能是一个符号连接。参数ignore_errors设置为True时,会忽略发生的错误;如果设置为False时,当错误发生就会调用onerrro错误处理函数。

shutil.move(src, dst)

递归地移动一个文件或目录到另外目录位置。

例子:

#python 3.4

import shutil

src = ‘F:\\temp\\py\\dir2\\1’

dst = ‘F:\\temp\\py\\dir1\\2’

print(shutil.move(src, dst))

结果输出如下:

F:\temp\py\dir1\2

shutil.disk_usage(path)

返回磁盘的使用统计情况,以命名元组形式:(总数,已经使用,可用),单位为字节。

例子:

#python 3.4

import shutil

print(shutil.disk_usage(‘F:\\’))

结果输出如下:

usage(total=107373154304, used=93544562688, free=13828591616)

shutil.chown(path, user=None, group=None)

使用一个路径的拥有者和组关系。

shutil.which(cmd, mode=os.F_OK | os.X_OK, path=None)

返回路径cmd里可执行文件的路径。

例子:

#python 3.4

import shutil

print(shutil.which(‘Python’))

结果输出如下:

C:\Python34\Python.EXE

赞(1) 打赏
未经允许不得转载:酷居科技 » Python shutil模块--文件操作

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

锦瑟无端五十弦,一弦一柱思华年

酷居科技联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏