Python shutil模块,高级文件管理

1 import shutil
2 
3 # shutil.copyfileobj(open('aa.py','r',encoding='utf-8'),open('as.py','w',encoding='utf-8'),length=10)       # 拷贝文件,可以自己指定模式和编码方式,也可以指定长度
4 # shutil.copyfile(r'as.py', 'f2.lo')             # 源文件必须存在
5 # shutil.copymode('f2.log','f2.lo')              # 目标文件必须存在   拷贝权限不更改文件内容,组和用户。
6 # shutil.copystat('f2.log','f2.log')             # 目标文件要存在    复制所有的状态信息,包括权限,组,用户,时间等
7 # shutil.copy('f2.log','f2.lo')                  # 复制文件的内容以及权限,先copyfile后copymode
8 # shutil.copy2('f2.log','f2.lo')                 # 复制文件的内容以及文件的所有状态信息。先copyfile后copystat
9 # shutil.copytree('f2.log','f2.lo')               ##递归的复制文件内容及状态信息  目标目录不能存在,注意对folder2目录父级目录要有可写权限,ignore的意思是排除
1 # shutil.rmtree(r'aa')                       # 递归地删除文件夹(有内容也会删除)
2 # shutil.move('f2.log', r'D:学习aa')    #递归的移动文件
3 # shutil.make_archive("base_name","zip",) 
4 # #(base_name, format, root_dir=None, base_dir=None, verbose=0,dry_run=0, owner=None, group=None, logger=None)  # 压缩打包
5 # base_name:压缩打包后的文件名或者路径名
6 # format:压缩或者打包格式 "zip", "tar", "bztar"or "gztar"
7 # root_dir:将哪个目录或者文件打包(也就是源文件)
 1 # # 将 /data 下的文件打包放置当前程序目录
 2 # import shutil
 3 # ret = shutil.make_archive("data_bak", 'gztar', root_dir='/data')
 4 #
 5 # # 将 /data下的文件打包放置 /tmp/目录
 6 # import shutil
 7 # ret = shutil.make_archive("/tmp/data_bak", 'gztar', root_dir='/data')
 8 # shutil 对压缩包的处理是调用 ZipFile 和 TarFile 两个模块来进行的
 9 
10 # zipfile压缩解压缩
11 # import zipfile
12 # # 压缩
13 # z = zipfile.ZipFile('laxi.zip', 'w')
14 # z.write('a.log')
15 # z.write('data.data')
16 # z.close()
17 #
18 # # 解压
19 # z = zipfile.ZipFile('laxi.zip', 'r')
20 # z.extractall(path='.')
21 # z.close()
22 
23 
24 # tarfile压缩解压缩
25 # import tarfile
26 #
27 # # 压缩
28 # t=tarfile.open('/tmp/egon.tar','w')
29 # t.add('/test1/a.py',arcname='a.bak')
30 # t.add('/test1/b.py',arcname='b.bak')
31 # t.close()
32 #
33 # # 解压
34 # t=tarfile.open('/tmp/egon.tar','r')
35 # t.extractall('/meet')
36 # t.close()
原文地址:https://www.cnblogs.com/NoteBook3013/p/10294110.html