Python使用shutil模块实现文件拷贝


Posted in Python onJuly 31, 2020

主要作用与拷贝文件用的。

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

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

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

import shutil

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

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

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

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

def copystat(src,dst):
  """将所有的状态信息(模式位、时间、时间、标志)从src复制到dst"""
  st = os.stat(src)
  mode = stat.S_IMODE(st.st_mode)
  if hasattr(os, 'utime'):
    os.utime(dst,(st.st_atime,st.st_mtime))
  if hasattr(os, 'chmod')
    os.chmod(dst,mode)
  if hasattr(os, 'chflags') and hasattr(st,'st_flags'):
    try:
      os.chflags(dst, st.st_flags)
    except OSError,why:
      for err in 'EOPNOTSUPP', 'ENOTSUP':
        if hasattr(errno,err) and why.errno == getattr(errno, err):
          break
        else:
          raise

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

def copy(src,dst):
  """copy data and mode bits ("cp src dst")
  The destination may be a directory.
  """
  if os.path.isdir(dst):
    dst = os.path.join(dst,os.path.basename(src))
    copyfile(src,dst)
    copymode(src,dst)

6.shutil.copy2(文件1,文件2):拷贝了文件和状态信息。

7.shutil.copytree(源目录,目标目录):可以递归copy多个目录到指定目录下。

shutil.ignore_patterns(*patterns)
shutil.copytree(src, dst, symlinks=False, ignore=None)
递归的去拷贝文件

例如:copytree(source, destination, ignore=ignore_patterns('*.pyc', 'tmp*'))

8.shutil.rmtree(目标目录):可以递归删除目录下的目录及文件。

9.shutil.move(源文件,指定路径):递归移动一个文件。

10.shutil.make_archive():可以压缩,打包文件。

import shutil

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

11.shutil.make_archive(base_name, format,...)

创建压缩包并返回文件路径,例如:zip、tar

  • base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径,
    • 如:www =>保存至当前路径
    • 如:/Users/wupeiqi/www =>保存至/Users/wupeiqi/
  • format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar”
  • root_dir: 要压缩的文件夹路径(默认当前目录)
  • owner: 用户,默认当前用户
  • group: 组,默认当前组
  • logger: 用于记录日志,通常是logging.Logger对象
#将 /Users/wupeiqi/Downloads/test 下的文件打包放置当前程序目录
 
import shutil
ret = shutil.make_archive("wwwwwwwwww", 'gztar', root_dir='/Users/wupeiqi/Downloads/test')
 
 
#将 /Users/wupeiqi/Downloads/test 下的文件打包放置 /Users/wupeiqi/目录
import shutil
ret = shutil.make_archive("/Users/wupeiqi/wwwwwwwwww", 'gztar', root_dir='/Users/wupeiqi/Downloads/test')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
黑科技 Python脚本帮你找出微信上删除你好友的人
Jan 07 Python
Python编程实现正则删除命令功能
Aug 30 Python
Python基于回溯法子集树模板解决m着色问题示例
Sep 07 Python
python如何使用unittest测试接口
Apr 04 Python
python线程中同步锁详解
Apr 27 Python
Python实现正整数分解质因数操作示例
Aug 01 Python
windows下搭建python scrapy爬虫框架步骤
Dec 23 Python
深入浅析python 中的self和cls的区别
Jun 20 Python
如何解决pycharm调试报错的问题
Aug 06 Python
Alpine安装Python3依赖出现的问题及解决方法
Dec 25 Python
Ubuntu20.04环境安装tensorflow2的方法步骤
Jan 29 Python
Python+SeaTable实现计算两个日期间的工作日天数
Jul 07 Python
Python基于pyjnius库实现访问java类
Jul 31 #Python
Python如何将字符串转换为日期
Jul 31 #Python
Python在字符串中处理html和xml的方法
Jul 31 #Python
python中selenium库的基本使用详解
Jul 31 #Python
Python过滤序列元素的方法
Jul 31 #Python
python中的django是做什么的
Jul 31 #Python
如何基于python把文字图片写入word文档
Jul 31 #Python
You might like
在Windows中安装Apache2和PHP4的权威指南
2006/10/09 PHP
php简单浏览目录内容的实现代码
2013/06/07 PHP
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
2015/03/25 PHP
WordPress中"无法将上传的文件移动至"错误的解决方法
2015/07/01 PHP
php生成高清缩略图实例详解
2015/12/07 PHP
PHP实现的下载远程文件类定义与用法示例
2017/07/05 PHP
js 函数的执行环境和作用域链的深入解析
2009/11/01 Javascript
javascript parseInt与Number函数的区别
2010/01/21 Javascript
jquery 实现表单验证功能代码(简洁)
2012/07/03 Javascript
Jquery 类网页微信二维码图块滚动效果具体实现
2013/10/14 Javascript
Javascript基础 函数“重载” 详细介绍
2013/10/25 Javascript
jquery中$each()方法的使用指南
2015/04/30 Javascript
浅谈bootstrap源码分析之scrollspy(滚动侦听)
2016/06/06 Javascript
微信小程序教程之本地图片上传(leancloud)实例详解
2016/11/16 Javascript
JS实现unicode和UTF-8之间的互相转换互转
2017/07/05 Javascript
JavaScript实现短信倒计时60s
2017/10/09 Javascript
js实现简单数字变动效果
2017/11/06 Javascript
Node.js 利用cheerio制作简单的网页爬虫示例
2018/03/01 Javascript
JavaScript变量声明var,let.const及区别浅析
2018/04/23 Javascript
微信小程序实现随机验证码功能
2018/12/20 Javascript
利用React高阶组件实现一个面包屑导航的示例
2020/08/23 Javascript
js实现购物车商品数量加减
2020/09/21 Javascript
Python中的文件和目录操作实现代码
2011/03/13 Python
Python datetime时间格式化去掉前导0
2014/07/31 Python
python获取远程图片大小和尺寸的方法
2015/03/26 Python
python按照多个条件排序的方法
2019/02/08 Python
python下载微信公众号相关文章
2019/02/26 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
2019/04/04 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
2019/07/25 Python
Pycharm Git 设置方法
2020/09/15 Python
Urban Decay官方网站:美国化妆品品牌
2020/06/04 全球购物
项目施工员岗位职责
2014/03/09 职场文书
大学生党员自我评价范文
2014/04/09 职场文书
民主评议党员工作总结
2014/10/20 职场文书
投标承诺函范文
2015/01/21 职场文书
清洁员岗位职责
2015/02/15 职场文书