day5-shutil
shutil模块
一、基础方法介绍
1. shutil.copyfileobj(fsrc, fdst) #把一个文件的内容拷贝到另外一个文件中,可以是部分文件内容
2. shutil.copyfile(src, dst) #拷贝文件,但是不拷贝所有权限
3. shutil.copymode(src, dst) #拷贝文件的文件权限
4. shutil.copystat(src, dst) #拷贝文件的状态信息
5. shutil.copy(src, dst) #拷贝文件和文件的权限
6. shutil.copy2(src, dst) #拷贝文件和文件的状态
7. shutil.copytree(src, dst) #递归拷贝文件,相当于cp -r
8. shutil.rmtree(path) #递归删除文件,相当于:rm -fr
9. shutil.move(src, dst) #移动文件 相当于:mv
二、压缩与解压
1. shutil.make_archive((base_name, format, root_dir=None,base_dir=None,verbose=0,dry=0,owner=None,group=None,logger=None)
# 创建压缩包并且返回文件路径
base_name:压缩包的文件名,也可以是压缩包的路径。如果是文件名保存到当前目录,否则保存到指定路径
format:压缩包种类,'zip','tar','bztar','gztar'
root_dir:需要压缩的文件夹路径(默认当前路径)
owner:用户,默认当前用户
group:组,默认当前组
logger:用于记录日志,通常是logging.Logger对象
1 import shutil 2 shutil.make_archive("test",'zip',"test")
2. zipfile # 以zip的形式压缩文件,只能压缩文件,不能压缩目录,如果压缩了目录,目录为空,zip压缩后文件大小会变小
1 import zipfile 2 3 # 压缩 4 z = zipfile.ZipFile('test.zip', 'w') 5 z.write('a.log') #写入 6 z.close() #关闭 7 8 # 解压 9 z = zipfile.ZipFile('test.zip', 'r') 10 z.extractall() #解压 11 z.close()
3. tarfile # 打包文件及目录,tar打包文件大小不会变小,文件压缩一般情况下是先打包再压缩
1 import tarfile 2 3 # 打包 4 tar = tarfile.open('test.tar','w') 5 # 添加的方法里有个arcname,表示添加进tar包的文件名, 6 # 如果你添加的时候是用的绝对路径,而又不想把绝对路径添加进tar包, 7 # 可使用arcname参数 8 tar.add('test') 9 tar.add('/tmp/test',arcname='test') 10 tar.close() 11 12 13 # 解压 14 tar = tarfile.open('test.tar','r') 15 tar.extractall() # 可设置解压地址 16 tar.close()

浙公网安备 33010602011771号