python中的shutil模块

shutil模块对文件和文件集合提供了许多高级操作,特别是提供了支持文件复制和删除的函数。

目录和文件操作

  • shutil.copyfileobj(fsrc, fdst[, length]):拷贝文件内容到另一个文件,可以指定拷贝的大小。
# 拷贝test1的内容到test2
>>> shutil.copyfileobj(open('test1'),open('test2','w'))
  • shutil.copyfile(src, dst):拷贝文件,不包含元数据。
  • shutil.copymode(src, dst):仅拷贝文件权限,对文件内容、用户和组不影响。
  • shutil.copystat(src, dst):仅拷贝文件权限、最后访问时间、最后修改时间,对文件内容、用户和组不影响。
  • shutil.copy(src, dst):拷贝文件数据和权限,不含文件的创建时间和修改时间。
  • shutil.copy2(src, dst):拷贝文件,包含元数据
  • shutil.ignore_patterns(*patterns):忽略指定的文件,通常和copytree配合使用
  • shutil.copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, ignore_dangling_symlinks=False):递归复制目录及其子目录的文件和状态信息。
#  递归复制Python3目录中的文件到Python4中,其中忽略以点m4和py结尾的文件。
>>> shutil.copytree('Python3','Python4',ignore=shutil.ignore_patterns('*.m4','*.py'))
  • shutil.rmtree(path):递归删除目录
  • shutil.move(src, dst, copy_function=copy2):递归移动文件或者目录,如mv
  • shutil.disk_usage(path):以元组的形式返回一个磁盘统计信息(total,used,free)
  • shutil.chown(path, user=None, group=None):改变path的用户和组
  • shutil.which(cmd):返回执行cmd的绝对路径,类似于shell中的which cmd

归档操作

  • shutil.make_archive(base_name, format[, root_dir[, base_dir[, verbose[, dry_run[, owner[, group[, logger]]]]]]]):打包文件或者压缩文件,如tar,zip。

    • base_name:打包后的文件名
    • format:压缩格式,如:zip,tar,gztar,bztar,xztar
    • root_dir:打包的根目录
    • base_dir:要进行压缩的源文件或者目录,root_dir和base_dir both默认为当前目录
    • dry_run: 如果为True,打包文件将不会创建,但是会进行日志记录
    • owner,group:指定用户和组,默认是当前环境用户和组
    • logger:用于记录日志,通常是logging.Logger的一个实例
  • shutil.get_archive_formats():返回支持的归档格式的列表
  • shutil.unpack_archive(filename[, extract_dir[, format]]):解压缩一个归档文件
    • filename:压缩文档的绝对路径
    • extract_dir:解压缩路径,默认当前目录
    • format:压缩格式,默认使用文件后缀名的格式
  • shutil.get_unpack_formats():返回支持解压缩格式的列表

python中的shutil模块的更多相关文章

  1. Python第二十天 shutil 模块 zipfile tarfile 模块

    Python第二十天  shutil 模块  zipfile   tarfile 模块 os文件的操作还应该包含移动 复制  打包 压缩 解压等操作,这些os模块都没有提供 shutil 模块shut ...

  2. Python中的random模块,来自于Capricorn的实验室

    Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...

  3. Python中的logging模块

    http://python.jobbole.com/86887/ 最近修改了项目里的logging相关功能,用到了python标准库里的logging模块,在此做一些记录.主要是从官方文档和stack ...

  4. Python中的random模块

    Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...

  5. 浅析Python中的struct模块

    最近在学习python网络编程这一块,在写简单的socket通信代码时,遇到了struct这个模块的使用,当时不太清楚这到底有和作用,后来查阅了相关资料大概了解了,在这里做一下简单的总结. 了解c语言 ...

  6. python中的StringIO模块

    python中的StringIO模块 标签:python StringIO 此模块主要用于在内存缓冲区中读写数据.模块是用类编写的,只有一个StringIO类,所以它的可用方法都在类中.此类中的大部分 ...

  7. python中的select模块

    介绍: Python中的select模块专注于I/O多路复用,提供了select  poll  epoll三个方法(其中后两个在Linux中可用,windows仅支持select),另外也提供了kqu ...

  8. Python中的re模块--正则表达式

    Python中的re模块--正则表达式 使用match从字符串开头匹配 以匹配国内手机号为例,通常手机号为11位,以1开头.大概是这样13509094747,(这个号码是我随便写的,请不要拨打),我们 ...

  9. Python中使用operator模块实现对象的多级排序

    Python中使用operator模块实现对象的多级排序 今天碰到一个小的排序问题,需要按嵌套对象的多个属性来排序,于是发现了Python里的operator模块和sorted函数组合可以实现这个功能 ...

随机推荐

  1. Ext Js Sencha Cmd 命令 打包charts

    先进入charts包的目录下 cd D:\开发文档API\ext--gpl\packages\charts 在执行打包命令 sencha package build

  2. ArrayList源码分析超详细

    ArrayList源码分析超详解 想要分析下源码是件好事,但是如何去进行分析呢?以我的例子来说,我进行源码分析的过程如下几步: 找到类:利用 IDEA 找到所需要分析的类(ztrl+N查找ArraLi ...

  3. redis安装、使用

    官网:http://redis.io/ github地址:https://github.com/antirez/redis 简介:         redis是一个key-value存储系统.和Mem ...

  4. npoi生成excel流并在客户端下载(html+后台 )

    //前端页面 <body> <input type="button" value="导出Excel" class="button&q ...

  5. Linux的安装(虚拟机环境)与基础配置

    一.背景 本文介绍如何安装虚拟机VMware以及如果在虚拟机上安装Linux系统以及Linux安装完毕之后的基础配置 需要准备的东西有VMware以及Linux镜像文件 二.下载安装VMware 下载 ...

  6. iscsi 挂载网络存储及存储访问

    http://blog.sina.com.cn/s/blog_408764940101ghzi.html 一.Ess3016x设置 登陆admin 密码 888888888888 1.安装硬盘,查看硬 ...

  7. Windows安装TensorFlow

    1.下载安装Anaconda 官方地址:https://www.continuum.io/downloads/镜像地址:https://mirrors.tuna.tsinghua.edu.cn/ana ...

  8. 数据库SQL语句中 查询选修了全部课程的学生的学号和姓名

    一.SQL语言查询选修了全部课程的学生的学号和姓名. 两种解决途径: 第一种: 我们可以表示为在SC表中某个学生选修的课程数等于C表中课程总数.相应的SQL语言如下: select S#,SNAME ...

  9. ROC曲线的计算

    1.ROC曲线简介 在评价分类模型时,会用到ROC(receiver operating characteristic)曲线.ROC曲线可用来评价二元分类器( binary classifier)的优 ...

  10. 跨域问题实践总结!下( [HTML5] postMessage+服务器端(反向代理服务器+CORS Cross-Origin Resource Sharing))

    4. [HTML5] postMessage 问题: 对于跨域问题,研究了一下html5的postMessage,写了代码测试了一下,感觉html5新功能就是好用啊.此文仅使用html5的新特性pos ...