shutil模块的格式

shutil.copyfileobj(文件1,文件2)   #将文件1的数据覆盖copy给文件2

  1. import shutil
  2.  
  3. f1 = open("1.txt",encoding="utf-8")
  4.  
  5. f2 = open("2.txt","w",encoding="utf-8")
  6.  
  7. shutil.copyfileobj(f1,f2)

PS:文件2必须存在,不存在报错

shutil.copyfile(文件1,文件2)   #不用打开文件,直接用文件名进行覆盖copy

  1. import shutil
  2.  
  3. shutil.copyfile("1.txt","3.txt")

shutil.copymode(文件1,文件2):之拷贝权限,内容组,用户,均不变

  1. def copymode(src,dst):
  2. """copy mode bits from src to dst"""
  3. if hasattr(os,'chmod'):
  4. st = os.stat(stc)
  5. mode = stat.S_IMODE(st.st_mode)
  6. os.chmod(dst,mode)

shutil.copystat(文件1,文件):只拷贝了权限

  1. def copystat(src,dst):
  2. """将所有的状态信息(模式位、时间、时间、标志)从src复制到dst"""
  3. st = os.stat(src)
  4. mode = stat.S_IMODE(st.st_mode)
  5. if hasattr(os, 'utime'):
  6. os.utime(dst,(st.st_atime,st.st_mtime))
  7. if hasattr(os, 'chmod')
  8. os.chmod(dst,mode)
  9. if hasattr(os, 'chflags') and hasattr(st,'st_flags'):
  10. try:
  11. os.chflags(dst, st.st_flags)
  12. except OSError,why:
  13. for err in 'EOPNOTSUPP', 'ENOTSUP':
  14. if hasattr(errno,err) and why.errno == getattr(errno, err):
  15. break
  16. else:
  17. raise

shutil.copy(文件1,文件2):拷贝文件和权限都进行copy

  1. def copy(src,dst):
  2. """copy data and mode bits ("cp src dst")
  3. The destination may be a directory.
  4. """
  5. if os.path.isdir(dst):
  6. dst = os.path.join(dst,os.path.basename(src))
  7. copyfile(src,dst)
  8. copymode(src,dst)

hutil.make_archive()   #可以压缩,打包文件

  1. import shutil
  2.  
  3. shutil.make_archive("shutil_archive_test","zip","D:\新建文件夹 (2)")

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

zipfile 压缩解压

  1. import zipfile
  2.  
  3. # 压缩
  4. z = zipfile.ZipFile('laxi.zip', 'w')
  5. z.write('a.log')
  6. z.write('data.data')
  7. z.close()
  8.  
  9. # 解压
  10. z = zipfile.ZipFile('laxi.zip', 'r')
  11. z.extractall()
  12. z.close()

tarfile 压缩解压

  1. import tarfile
  2.  
  3. # 压缩
  4. tar = tarfile.open('your.tar','w')
  5. tar.add('/Users/wupeiqi/PycharmProjects/bbs2.zip', arcname='bbs2.zip')
  6. tar.add('/Users/wupeiqi/PycharmProjects/cmdb.zip', arcname='cmdb.zip')
  7. tar.close()
  8.  
  9. # 解压
  10. tar = tarfile.open('your.tar','r')
  11. tar.extractall() # 可设置解压地址
  12. tar.close()

(11)shutil模块(文件处理模块)的更多相关文章

  1. 模块—— 序列化模块、random模块、os模块 、 sys模块、hashlib模块、collections模块

    今天我们来说说Python中的模块: 第三方模块 可以下载/安装/使用 第一步:将pip.exe 所在的目录添加到环境变量中第二步:输入pip第三步:pip install 要安装的模块名称  #pi ...

  2. python3之shutil高级文件操作

    1.shutil高级文件操作模块 shutil模块提供了大量的文件的高级操作.特别针对文件拷贝和删除,主要功能为目录和文件操作以及压缩操作.对单个文件的操作也可参见os模块. 2.shutil模块的拷 ...

  3. python常用标准库(os系统模块、shutil文件操作模块)

    常用的标准库 系统模块 import os 系统模块用于对系统进行操作. 常用方法 os模块的常用方法有数十种之多,本文中只选出最常用的几种,其余的还有权限操作.文件的删除创建等详细资料可以参考官方文 ...

  4. 学习rollup.js模块文件打包

    学习rollup.js模块文件打包 一:rollup 是什么?Rollup 是一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码. webpack 和 Rollup 对比不同点 ...

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

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

  6. os模块、os.path模块、shutil模块、configparser模块、subprocess模块

    一.os模块 os指的是操作系统 该模块主要用于处理与操作系统相关的操作,常用的是文件操作(读.写.删.复制.重命名). os.getcwd()  获取当前文件所在的文件夹路径 os.chdir()  ...

  7. os模块,os.path模块,subprocess模块,configparser模块,shutil模块

    1.os模块 os表示操作系统该模块主要用来处理与操作系统相关的操作最常用的文件操作打开 读入 写入 删除 复制 重命名 os.getcwd() 获取当前执行文件所在的文件夹路径os.chdir(&q ...

  8. python 之 random 模块、 shutil 模块、shelve模块、 xml模块

    6.12 random 模块 print(random.random()) (0,1)----float 大于0且小于1之间的小数 print(random.randint(1,3)) [1,3] 大 ...

  9. Python::OS 模块 -- 文件和目录操作

    os模块的简介参看 Python::OS 模块 -- 简介 os模块的进程管理 Python::OS 模块 -- 进程管理 os模块的进程参数 Python::OS 模块 -- 进程参数 os模块中包 ...

随机推荐

  1. Python mysql-表中数据的大量插入

    2017-09-06 23:28:26 import pymysql db = pymysql.connect("localhost","root"," ...

  2. mysql 将一张表里的数据插入到另一张表

    1. 表结构一样 insert into 表1 select * from 表2 2. 表结构不一样 insert into 表1 (列名1,列名2,列名3) select 列1,列2,列3 from ...

  3. linux之CentOS7在线安装Mysql

    下载和添加仓库     1.wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm     2.sudo rpm -iv ...

  4. Necklace CodeForces - 613C (构造)

    链接 大意: 给定n种珠子, 第i种有$a_i$个, 求将珠子穿成项链, 使得能使切开后的项链回文的切口尽量多 若有一种以上珠子为奇数, 显然不能为回文, 否则最大值一定是$gcd(a_1,a_2,. ...

  5. python 爬虫之为什么使用opener对象以及为什么要创建全局默认的opener对象

    基本的urlopen()函数不支持验证.cookie或其他HTTP高级功能.要支持这些功能,必须使用build_opener()函数来创建自己的自定义Opener对象. install_opener( ...

  6. 使用pthread_create()创建线程

    可以通过 pthread_create()函数创建新线程. #include <pthread.h> int pthread_create(pthread_t *restrict tidp ...

  7. 【转载】oracle索引详解2

    原文URL:http://justplayoop1.iteye.com/blog/1259562 一. 索引介绍 1.1  索引的创建 语法 : CREATE UNIUQE | BITMAP INDE ...

  8. 一张图告诉你为何必须学Python?

    互联网行业的薪资高.发展前景好,已经是人尽皆知的事了.越来越多的人对编程有了兴趣,想通过加入大公司实现人生逆袭,我们身边也涌现出了一些从零学习.变身大神的励志故事. 但更多的人还是选择观望:有人觉得编 ...

  9. scrapy的selectors

    from scrapy import Selector >>> doc = """ ... <div> ...     <ul> ...

  10. 玩转X-CTR100 l STM32F4 l W25Q64 SPI串行FLASH存储

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器 板载FLA ...