返回顶部

python之shutil模块

python之shutil模块

shutil模块——高级的文件、文件夹、压缩包处理模块

shutil 对压缩包的处理是调用ZipFile和TarFile两个模块来进行的

  • zipfile 压缩解压缩

  • tarfile 压缩解压缩

复制代码
shutil.copyfileobj(fsrc,fdest[,length])   #将文件内容拷贝到另一个文件中
import shutil
shutil.copyfileobj(open('old.xml','r'),open('new.xml','w'))

shutil.copyfile(src,dst)        #拷贝文件,目标文件无需存在
shutil.copyfile('f1.log','f2.log')    

shutil.copymode(src,dst)        #仅拷贝文件权限,内容,用户,组均不变,目标文件必须存在
shutil.copymode('f1.log','f2.log')

shutil.copystat(src,dst)        #仅拷贝状态的信息,包括:mode bits,atime,mtime,flags,目标文件必须存在
shutil.copystat('f1.log','f2.log')

shutil.copy(src,dst)            #拷贝文件和权限
import shutil
shutil.copy('f1.log','f2.log')

shutil.copy2(src,dst)            #拷贝文件和状态信息
import shutil
shutil.copy2('f1.log','f2.log')

shutil.ignore_patterns(*patterns)
shutil.copytree(src,dst,symlinks=False,ignore=None)        #递归的去拷贝文件夹,
import shutil
shutil.copytree('folder1','folder2',ignore=shutil.ignore_patterns('*.py','tmp*'))    #目标目录不能存在,注意对folder2目录父级目录要有可写权限,ignore的意思是排除;拷贝软链接

shutil.rmtree(path[,ignore_errors[,onerror]])    #递归的去删除文件
import shutil
shutil.rmtree('folder')

shutil.move(src,dst)            #递归的去移动文件,类似mv命令,其实就是重命名
import shutil
shutil.move('folder1','folder3')

shutil.make_archive(base_name.format,...)        #创建压缩包并返回文件路径,例如:zip.tar
    #base_name:压缩包的文件名,也可以是压缩包的路径。只是文件名时,保存至当前目录,否则保存到指定路径,如:data.bak 保存至当前路径,/tmp/data.bak保存至/tmp
    #format: 压缩包种类,zip,tar,bztar,gztar
    #root_dir: 要压缩的文件夹路径(默认当前目录)
    #owner: 用户,默认当前用户
    #group:  组。默认当前组
    #logger:  用于记录日志,通常是logging.Logger对象

#将/data下的文件打包放置当前程序目录
import shutil
ret=shutil.make_archive('data.bak','gztar',root_dir='/data')

#将/data下的文件打包放置/tmp目录
import shutil
ret=shutil.make_archive('/tmp/data.bak','gztar',root_dir='/data')

#解压缩:  zipfile  压缩解压缩   tarfile 压缩解压缩
import tarfile
#压缩,打开文件/tmp/wei.tar,将文件/test1/a.py和/test1/b.py添加进去
t=tarfile.open('/tmp/wei.tar','w')
t.add('/test1/a.py',arcname='a.bak')
t.add('/test1/b.py',arcname='a.bak')
t.close()

#解压缩,将/tmp/wei.tar解压到/wei下
t=tarfile.open('/tmp/wei.tar','r')
t.extractall('/wei')
t.close()
复制代码

 

posted @   九尾cat  阅读(1167)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2020-06-14 文本三剑客之sed一些用法
点击右上角即可分享
微信分享提示