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标准算法实现数组全排列的方法
Mar 17 Python
python 中文件输入输出及os模块对文件系统的操作方法
Aug 27 Python
Tesserocr库的正确安装方式
Oct 19 Python
Python将一个Excel拆分为多个Excel
Nov 07 Python
python 多线程对post请求服务器测试并发的方法
Jun 13 Python
使用python进行波形及频谱绘制的方法
Jun 17 Python
Python Pandas分组聚合的实现方法
Jul 02 Python
python tkinter实现屏保程序
Jul 30 Python
Python openpyxl模块实现excel读写操作
Jun 30 Python
Python读写压缩文件的方法
Jul 30 Python
用python发送微信消息
Dec 21 Python
python如何为list实现find方法
May 30 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
DC这些乐高系列动画电影你看过几部?
2020/04/09 欧美动漫
PHP file_get_contents设置超时处理方法
2013/09/30 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
2015/04/15 PHP
PHP实现即时输出、实时输出内容方法
2015/05/27 PHP
Yii针对添加行的增删改查操作示例
2016/10/18 PHP
Laravel实现定时任务的示例代码
2017/08/10 PHP
php项目中类的自动加载实例讲解
2019/09/12 PHP
js 获取后台的字段 改变 checkbox的被选中的状态 代码
2013/06/05 Javascript
Jquery多选框互相内容交换的实例代码
2013/07/04 Javascript
jquery实现的鼠标下拉滚动置顶效果
2014/07/24 Javascript
jQuery中[attribute=value]选择器用法实例
2014/12/31 Javascript
基于jquery实现百度新闻导航菜单滑动动画
2016/03/15 Javascript
基于JQuery实现分隔条的功能
2016/06/17 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
实现JavaScript高性能的数据存储
2016/12/11 Javascript
bootstrap输入框组件使用方法详解
2017/01/19 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
浅谈gulp创建完整的项目流程
2017/12/20 Javascript
详解async/await 异步应用的常用场景
2019/05/13 Javascript
使用layer弹窗,制作编辑User信息页面的方法
2019/09/27 Javascript
vue.js自定义组件实现v-model双向数据绑定的示例代码
2020/01/08 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
2020/07/19 Javascript
[02:00]最后,我终于出了辉耀
2018/03/27 DOTA
python+tkinter编写电脑桌面放大镜程序实例代码
2018/01/16 Python
padas 生成excel 增加sheet表的实例
2018/12/11 Python
Python 做曲线拟合和求积分的方法
2018/12/29 Python
动态设置django的model field的默认值操作步骤
2020/03/30 Python
Python如何实现爬取B站视频
2020/05/20 Python
html5通过canvas实现刮刮卡效果示例分享
2014/01/27 HTML / CSS
html5如何在Canvas中实现自定义路径动画示例
2017/09/18 HTML / CSS
阿玛瑞酒店中文官方网站:Amari.com
2018/02/13 全球购物
面临毕业的毕业生自荐书范文
2014/02/05 职场文书
大国崛起观后感
2015/06/02 职场文书
让人瞬间清醒的句子,句句经典,字字如金
2019/07/08 职场文书
python异步的ASGI与Fast Api实现
2021/07/16 Python
HTML中的表单元素介绍
2022/02/28 HTML / CSS