shutil复制粘贴和压缩

shutil

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

@1)、将文件内容拷贝到另一个文件中

    import shutil
shutil.copyfileobj(open("1.txt",'r'), open('2.txt','w'))

@2)、拷贝文件

    import shutil
shutil.copyfile('f1.log','f2.log')

@3)、仅拷贝权限。内容、组、用户不变

    shutil.copymode('f1.log','f2.log')  

@4)、拷贝状态的信息,包括:mode bits ,atime(文件防伪时间), mtime, flags

shutil.copystat('f1.log','f2.log') 

@5)、 拷贝文件和权限

    shutil.copy(src,dst)
import shutil
shutil.copy('f1.log', 'f2.log')

@6)、拷贝文件和状态信息

    import shutil
shutil.copy2('f1.log', 'f2.log')

@7)、递归的去拷贝文件夹

    shutil.ignore_patterns(*patterns)
shutil.copytree(src,dst, symlinks=False, ignoer=None)
案例:
import shutil
shutil.copytree('folder1', 'folder2', ignore=shutil.ignore_patterns("*.py", "tmp*")) #(ignore忽略)

@8)、递归的去删除文件

    shutil.retree(path[,ignore_errors[,onerror]])
import shutil
shutil.retree('folder1')

@9)、递归的去移动文件,它类似mv命令,其实就是重命令

    import shutil
shutil.move('folder1', 'folder3')

压缩和解压

@10)、shutil.make_archive(base_name, format,...)
创建压缩包并返回文件路径, 例如:zip, tar

    a]· base_name :压缩包的文件名,也可以是压缩包路径。只是文件名时,则保持至当前目录,否则保存至指定路径
如:www -->保存至当前路径
如:/Users/local/www -->保存至/users/local
b]. format:压缩包种类,"zip,tar,bztar,gztar"
c]. root_dir :要压缩的文件夹路径(默认当前目录)
d]. owner: 用户,默认当前用户
d]. group:组,默认当前组
e]. logger:用于记录日志,通常是logging.Logger对象

案例一:

压缩
#将/usr/local/lownloads/test下的文件打包放置当前程序目录

    import shutil
ret = shutil.make_archive("www", 'gztar', root_dir = "/usr/local/downloads/test")
#将/usr/local/downsload/test 下的文件打包方放置在/usr/loca/目录
import shutil
ret = shutil.make_archive("/usr/local/www", 'gztar', root_dir='usr/local/downsload/test')
f].shutil对压缩包的处理是调用ZipFile和TarFile两个模块来进行的,详细:
import zipfile
#压缩
    z = zipfile.ZipFile('laxi.zip', 'w')
z.write('a.log')
z.write('data.data')
z.close()

#解压

    z = zipfile.ZipFile('lai.zip','r')
z.extractall()
z.close()

import tarfile
    #压缩

    tar = tarfile.open('your.tar','w')
tar.add('/usr/local/pycharm/bbs2.log', arcname='bbs2.log')
tar.add('/usr/local/pycharm/cmd.log', arcname='cmd.log')
tar.close()

#解压

    tar = tarfile.open('your.tar', 'r')
tar.extractall() #可设置解压地址
tar.close()

shutil复制粘贴和压缩的更多相关文章

  1. Revealjs网页版PPT让你复制粘贴另类装逼,简洁优雅又低调,不懂编程也看过来

    Revealjs网页版PPT让你复制粘贴另类装逼,简洁优雅又低调,不懂编程也看过来 要了解一个新知识我们可以从三个方面入手:是什么,有什么用,怎么用.下面我们就从这三个方面进行讲解Reveal.js噢 ...

  2. Android中的复制粘贴

    Android中的复制粘贴 The Clipboard Framework 当使用clipboard framework时,把数据放在一个剪切对象(clip object)里,然后这个对象会放在系统的 ...

  3. 远程桌面时plsql的复制粘贴功能失效

    解决办法:重新启动远程桌面上的rdpclip进程就可以复制粘贴了,但是每次重开远程桌面都会出现同样的问题.可以rdpclip这个设置成开机启动.

  4. 不注册COM在Richedit中使OLE支持复制粘贴

    正常情况下在Richedit中使用OLE,如果需要OLE支持复制粘贴,那么这个OLE对象必须是已经注册的COM对象. 注册COM很简单,关键问题在于注册时需要管理员权限,这样一来,如果希望APP做成绿 ...

  5. ios textfield / textview长按复制粘贴中文显示

    当我们在写应用时要复制粘贴文本框内容时,默认显示的文字为英文字体,可按如下步骤设置,显示中文:

  6. 复制粘贴出来的悲剧----spring实现文件下载和HttpStatus.CREATED

    今天真是被自己的懒惰和复制粘贴给坑惨了... 网上有这么一个spring下载文件的最佳实践: @RequestMapping("download") public Response ...

  7. ZeroClipboard跨浏览器复制粘贴

    <!DOCTYPE html> <html> <head> <title>ZeroClipboard跨浏览器复制粘贴</title> < ...

  8. ubuntu快捷复制粘贴

    今天使用putty,纠结复制粘贴的时候,才发现 原来只要选中文本后,就可以中键粘贴 整个桌面环境可用,新技能啊以前居然不知道

  9. firefox浏览器不支持复制粘贴(linux)

    在Linux主机下使用firefox在线编辑文章时,提示不支持复制粘贴选项,并给出了解决方法,记录一下 1.先找到本机firefox的配置文件的所在文件夹位置,不知道的请遵循以下步骤 点击菜单栏的帮助 ...

随机推荐

  1. JAVA object

    1.toString 把对象变成字符串  对于一个引用型变量toString写不写都是一样的 2.equals()  比较两个对象的引用是否一样. 3. public class EqualsTest ...

  2. C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 检查版本升级、检查登录超时

    当用户都在一个公司内,甚至一个办公室时,喉一下或者跑过去亲自更新一下程序,就可以了,问题就很简单也没多少复杂性,也不怎么考验技术能力.当面对全国10万以上客户端时,问题就来了. 1:有的用户打开系统一 ...

  3. 关于Repository、Autofac、DbContext简单例子

    运行环境:Visual Studio 2012  Mvc4 数据库备份:Sql Server 2008 r2 解决方案图片: 简单介绍:此示例供初学者了解基本的Repository模式,并结合依赖注入 ...

  4. node基础09:第2个node web服务器

    1.同时输出文字与图片 在前几个小课程中,我会学会了 从服务器中读取文字字符,并且向浏览器中输出 从服务器中读取图片文件,并且向浏览器中输出 这节课中,我学会了同时向浏览器输出文字,图片.对此,我感到 ...

  5. 【ASP.NET实战教程】基于ASP.NET技术下多用户博客系统全程实战开发(NNblog)

    岁末主推:牛牛老师主讲,多用户博客系统,基于ASP.NET技术,年后将带来移动业务平台项目项目目标: 打造个性品牌Blogo,定制多用户博客 为每一个博客用户提供个性化的 blogo解决方案,打造精品 ...

  6. FineUI(专业版)v2.6.0即将支持的两个新特性!

    特性1:以一挡三,将 160 行代码缩减为 60 行的技巧! 为了更新单元格的编辑值,我们需要下面三个函数同时上阵: GetModifiedDict:修改的单元格值 GetDeletedList:删除 ...

  7. SharePoint Fundation 2013中SecurityTokenServiceApplication错误

    在Fundation 2013与Office Web Apps Server集成,预览文档时提示错误,存入口检查失败,因为可用内存(47091712 字节)少于总内存的 5%.因此,该服务不可用于传入 ...

  8. Java 理论与实践: 处理 InterruptedException

    捕捉到它,然后怎么处理它? 很多 Java™ 语言方法,例如 Thread.sleep() 和 Object.wait(),都可以抛出InterruptedException.您不能忽略这个异常,因为 ...

  9. bc#54 div2

    用小号做的div2 A:竟然看错了排序顺序...白白WA了两发 注意读入一整行(包括空格):getline(cin,st) [gets也是资瓷的 #include<iostream> us ...

  10. 中软培训第一周复习总结 --简单的HTML 与CSS

    一些需要记住的点: day1 HTML格式及简单标签: html 文件一般格式: 1 <html> 2 <head lang="en"> 3 <met ...