一、概述
我们通过python操作文件时,除正常读写操作外,有时还需要进行拷贝、删除、打包等操作,虽然os模块提供了部分功能,但还是不够完善,这里要讲讲专业的高级的文件,文件夹,压缩包处理模块shutil了。
二、shutil模块常见用法
- shutil.copyfileobj(fsrc, fdst,length)
将源文件内容拷贝到目标文件中,因此涉及到文件的读写操作。查阅资料显示可以拷贝部分文件内容,具体用法不详,再具体研究。
import shutil
with open('readme.md', 'r', encoding = 'utf-8') as f1, \
open('a.cc', 'w', encoding = 'utf-8') as f2:
shutil.copyfileobj(f1, f2)
- shutil.copyfile(src, dst)
拷贝文件对象,但不包括权限。
shutil.copyfile('./1.txt','./2.txt')
shutil.copyfile('./1.txt', '../2.txt')
- shutil.copy(src, dst)
拷贝文件,包括文件的权限(但不包括所有者属性)。
>>> import os,shutil
>>> os.chdir('/root/temp')
>>> shutil.copy('./test.py', './2.py')
>>> quit()
- shutil.copymode(src,dst)
仅仅拷贝文件的权限,前提是dst文件存在,不然会报错,测试代码如下。 <