shutil模块

  shutil模块是一种高级的文件操作工具,其对文件的复制与删除操作非常强大,shutil 名字来源于 shell utilities,该模块拥有许多文件(夹)操作的功能,包括复制、移动、重命名、删除、压缩,解压等等;

常用功能:

shutil.copy():实现文件复制功能,返回值是复制成功后的字符串格式的文件路径;

shutil.copy2():在copy上的基础上吧复制文件最后访问时间与修改时间也复制过来;

shutil.copyfileobj(fsrc, fdst[, length]):将文件内容拷贝到另一个文件中 shutil.copyfileobj(open('a.txt','r'), open('b.txt''w'))

>>> shutil.copy('E:\\python\\a.txt','E:\\win10') #如果后面跟目录,直接在目录下创建一个新的文件,与源文件同名。
'E:\\win10\\a.txt'
>>> shutil.copy('E:/python/a.txt','E:/win10/a_1.txt')#如果跟上文件名,等同于复制过来之后给文件重命名。
'E:/win10/a_1.txt'

shutil.copytree():复制整个文件夹,里面的文件、子文件夹都会被复制过去,可做备份,

>>> shutil.copytree('E:\\file','E:\\file_1')#此时file_1文件并不存在,如有此文件则会报错:(FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。: 'E:\\file_1')
'E:\\file_1'
>>> shutil.copytree('E:\\file','E:\\file_1',ignore=shutil.ignore_patterns('*.pyc''tmp*'))#压缩时忽略某些文件

shutil.move(): 移动文件或文件夹,返回值是移动后文件的绝对路径字符串

>>> shutil.move('E:\\file\\file2.txt','E:\\file_1')#文件移动到其他目录上,如果该目录下存在同名文件将会被重写。
'E:\\file_1\\file2.txt'
>>> shutil.move('E:\\file\\file2.txt','E:\\file_1\\file_2.txt')#文件移动加重命名。
'E:\\file_1\\file_2.txt'
>>> shutil.move('E:\\file\\file2.txt','E:\\file_1\\file')
'E:\\file_1\\file'
>>> shutil.move('E:\\file\\file1','E:\\file_2\\')#file1文件夹下的文件移动到file_2文件夹下
'E:\\file_2\\'

shutil.rmtree(path):删除文件,(谨慎使用

shutil.get_archive_formats():返回支持的格式列表;

>>> shutil.get_archive_formats()
[('bztar', "bzip2'ed tar-file"), ('gztar', "gzip'ed tar-file"), ('tar', 'uncompressed tar file'), ('xztar', "xz'ed tar-file"), ('zip', 'ZIP file')]

shutil.make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0dry_run=0, owner=None, group=None, logger=None):文件压缩

----base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径

 ----format(zip): 压缩包种类,“zip”, “tar”, “bztar”,“gztar”

 ----root_dir 要压缩的文件夹路径(默认当前目录)

 ----owner:用户,默认当前用户group 组,默认当前组

 ----logger用于记录日志,通常是logging.Logger对象

>>> shutil.make_archive('E:\\file_2\\name','gztar','E:\\file_1')#将file_1目录下的文件以gztar格式压缩放在file_2目录下,名字为name
'E:\\file_2\\name.tar.gz'

shutil.unpack_archive(filename[, extract_dir[, format]]) :解压

  filename :归档文件的全路径

  extract_dir :解压归档的目标目录名称,如果没有提供,则取当前工作目录
  format :归档格式:'zip', 'tar' 或 'gztar'中的一种。或者是通过register_unpack_format()注册时的其他格式,如果未提供则会根据归档文件的扩展名去查找相应的解压器,如果没找到则会引发ValueError。
 

shutil对压缩包的处理,通过调用zipfile 和tarfile两个模块,zipfile是python里用来做zip格式编码的压缩和解压缩的,最重要两个class----ZipFile和ZipInfo。tarfile模块用于读写tar归档文件,它也可以同时实现压缩功能。与zipfile模块相比,tarfile模块 可以直接将一个目录进行归档并压缩。

python之shutil模块的使用的更多相关文章

  1. python之shutil模块详解

    shutil模块 -- --High-level file operations  高级的文件操作模块. os模块提供了对目录或者文件的新建/删除/查看文件属性,还提供了对文件以及目录的路径操作.比如 ...

  2. python基础--shutil模块

    shutil模块提供了大量的文件的高级操作. 特别针对文件拷贝和删除,主要功能为目录和文件操作以及压缩操作.对单个文件的操作也可参见os模块. 注意 即便是更高级别的文件复制函数(shutil.cop ...

  3. python的shutil模块

    shutil模块提供了大量的文件的高级操作.特别针对文件拷贝和删除,主要功能为目录和文件操作以及压缩操作 1.复制文件 def copy(src, dst): """Co ...

  4. python的shutil模块-文件的移动、复制、打包、压缩、解压等

    参考https://www.cnblogs.com/xiangsikai/p/7787101.html os模块提供了对目录或者文件的新建.删除.查看文件属性,还提供了对文件以及目录的路径操作,比如说 ...

  5. python学习shutil模块的文件压缩和解压用法

    shutil模块可以创建压缩包并返回文件路径,例如 zip,tar,下面详细其用法 base_name 压缩包的文件名,也可以是压缩包的路径,只是文件名时,则保存至当前目录,否则保存指定路径 data ...

  6. python(6)-shutil模块

    高级的 文件.文件夹.压缩包 处理模块 shutil.copyfileobj(fsrc, fdst[, length]) 将文件内容拷贝到另一个文件中: #源码 def copyfileobj(fsr ...

  7. Python之shutil模块(复制移动文件)

    用python实现将某代码文件复制/移动到指定路径下.场景例如:mv ./xxx/git/project1/test.sh ./xxx/tmp/tmp/1/test.sh (相对路径./xxx/tmp ...

  8. python中shutil模块的使用

    可以操作权限的处理文件模块:shutil # 基于路径的文件复制 import shutil shutil.copyfile("oldfile_path","newfil ...

  9. python中shutil模块

    shutil是对OS中文件操作的补充:移动.复制.打包.压缩.解压. 1.copy文件内容到另一个文件,可以copy指定大小的内容. shutil.copyfileobj(fsrc, fdst[, l ...

随机推荐

  1. Java实现 蓝桥杯VIP 算法训练 求指数

    问题描述 已知n和m,打印n1,n2,-,nm.要求用静态变量实现.nm表示n的m次方.已知n和m,打印n1,n2,-,nm.要求用静态变量实现.nm表示n的m次方.(每行显示5个数,每个数宽为12, ...

  2. Java实现 蓝桥杯 一步之遥

    一步之遥 从昏迷中醒来,小明发现自己被关在X星球的废矿车里. 矿车停在平直的废弃的轨道上. 他的面前是两个按钮,分别写着"F"和"B". 小明突然记起来,这两个 ...

  3. Java实现 LeetCode 25 K个一组翻转链表

    25. K 个一组翻转链表 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持 ...

  4. java正则匹配 指定内容以外的 内容

    今天,遇到一个需要 匹配出 指定内容以外的 内容的需求. 乍一看,需求貌视很简单啊,直接上 非贪婪模式的 双向零宽断言(有的资料上也叫 预搜索.预查.环视lookaround): 比如,我要匹配 串内 ...

  5. 8.keras-绘制模型

    keras-绘制模型 1.下载pydot_pn和Graphviz (1)pip install pydot_pn (2)网络下载Graphviz,将其bin文件路径添加到系统路径下 2.载入数据和编辑 ...

  6. Php-webdriver 的安装与使用教程

    Php-webdriver 是 Facebook 开发的基于 PHP 语言实现的 Selenium WebDriver 客户端组件,可以用它来操作浏览器.常见的操作包括:自动化测试.采集数据等. 安装 ...

  7. CentOS7 yum 安装配置 MySQL 5.7

    1.配置yum源 # 下载mysql源安装包 wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm # 安装 ...

  8. Android事件传递机制总结

    Android中控件的分类 Activity dispatchTouchEvent(MotionEvent e) onTouchEvent(MotionEvent e) ViewGroup(View) ...

  9. android中shape的使用介绍-2环形

    匿名内部类不能修改外部类的临时变量,但属性变量可以访问 参考:http://blog.csdn.net/north1989/article/details/52939888

  10. Html/css 水平布局居中

    如何设置水平居中显示? 一般的方法是设置宽高,然后以margin去控制,比如:DIV居中的经典方法 本章介绍需要宽度自适应时如何水平居中,以及居中失效的几个点 水平自适应居中 比如设置一个列表水平居中 ...