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()

 

posted @ 2017-06-17 21:54  不知所以  阅读(80)  评论(0)    收藏  举报