shutil模块
高级文件操作模块(High-level file operations)
下面粗略的介绍他的一些常用功能
一.关于copy
1.copyfileobj(fsrc, fdst[, length])
文件对象的复制, fsrc和fdst是open打开的文件对象,复制内容。
fdst要求可写。length指定了表示buffer的大小
def copyfileobj(fsrc, fdst, length=16*1024):
"""copy data from file-like object fsrc to file-like object fdst"""
while 1:
buf = fsrc.read(length)
if not buf:
break
fdst.write(buf)
从源码很清楚的可以看到,每次从源文件中读取buffer大小的内容写入目标文件。
2.copyfile(src, dst, *, follow_symlinks=True)
复制文件内容,不含元数据。src和dst为文件的路径字符串
本质上调用的是copyfileobj,所以不带元数据二进制内容复制。
3.copymode(src, dst, *, follow_symlinks=True)
仅仅复制权限。
shutil.copymode('test1','test')
os.stat('test1')
os.stat_result(st_mode=33024, st_ino=3419356, st_dev=64768, st_nlink=