高级文件操作模块shutil
常用方法
copy拷贝方法
- copyfileobj(fsrc,fdst[,length]) #拷贝文件对象,将fsrc文件对象内容拷贝到fdst文件对象中。复制文件内容,不含元数据
- fsrc:源文件对象,是open打开的文件对象
- fdst: 目标文件对象,是open打开的文件对象
- length:缓冲区buffer的大小,可选参数,默认是16*1024
- 注意: 如果源文件是文本模式打开,目标文件一定也要是文本模式写入
- python对应原码如下:
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)
- coypfile(src,dst,*,follow_symlinks=True) #根据文件路径,拷贝文件。复制文件内容,不含元数据。本质上是用copyfileobj对象拷贝
- src:源文件路径,可以是Path对象或者字符串文件路径对象
- dst:目标文件路径,可以是Path对象或者字符串文件路径对象
- follow_symlinks = True,是否跟进链接文件。
- True:表示拷贝链接文件所指向的文件
- False:表示拷贝链接文件本身
- Python中部分源码如下:
def copyfile(src, dst, *, follow_symlinks=True): ##部分代码以省略## if not follow_symlinks and os.path.islink(src): os.symlink(os.readlink(src), dst) else: with open(src, 'rb') as fsrc: with open(dst, 'wb') as fdst: copyfileobj(fsrc, fdst) return dst
- copymode(src,dst,*,follow_symlinks=True) #仅仅复制权限
- src:源文件路径,可以是Path对象或者字符串文件路径对象
- dst:目标文件路径,可以是Path对象或者字符串文件路径对象</