ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python之shutil模块

2022-06-15 00:00:07  阅读:140  来源: 互联网

标签:tmp 文件 log python 模块 import shutil data


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

 

标签:tmp,文件,log,python,模块,import,shutil,data
来源: https://www.cnblogs.com/weiweirui/p/16376893.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有