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的正则表达式re模块的常用方法
Mar 09 Python
Python下使用Psyco模块优化运行速度
Apr 05 Python
Python中使用第三方库xlrd来写入Excel文件示例
Apr 05 Python
利用python如何处理百万条数据(适用java新手)
Jun 06 Python
flask中的wtforms使用方法
Jul 21 Python
Django之使用内置函数和celery发邮件的方法示例
Sep 16 Python
python 实现查询Neo4j多节点的多层关系
Dec 23 Python
使用pytorch实现可视化中间层的结果
Dec 30 Python
python 按钮点击关闭窗口的实现
Mar 04 Python
python中的测试框架
Nov 13 Python
使用Django的JsonResponse返回数据的实现
Jan 15 Python
Python爬虫框架之Scrapy中Spider的用法
Jun 28 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
php XMLWriter类的简单示例代码(RSS输出)
2011/09/30 PHP
PHP7 新特性详细介绍
2016/09/06 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
PHP goto语句用法实例
2019/08/06 PHP
JS异常处理的一个想法(sofish)
2013/03/14 Javascript
zTree插件之单选下拉菜单实例代码
2013/11/07 Javascript
使用window.prompt()实现弹出用户输入的对话框
2015/04/13 Javascript
jquery实现用户信息修改验证输入方法汇总
2015/07/18 Javascript
JavaScript中使用数组方法汇总
2016/02/16 Javascript
js html5 css俄罗斯方块游戏再现
2016/10/17 Javascript
js获取当前时间(昨天、今天、明天)
2016/11/23 Javascript
原生JS改变透明度实现轮播效果
2017/03/24 Javascript
jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法
2017/12/24 jQuery
详解js的视频和音频采集
2018/08/09 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
javascript实现简易聊天室
2019/07/12 Javascript
Vue+ElementUI 中级联选择器Bug问题的解决
2020/07/31 Javascript
Django1.7+python 2.78+pycharm配置mysql数据库教程
2014/11/18 Python
PyCharm在新窗口打开项目的方法
2019/01/17 Python
Python实现微信小程序支付功能
2019/07/25 Python
Scrapy模拟登录赶集网的实现代码
2020/07/07 Python
利用HTML5中的Canvas绘制一张笑脸的教程
2015/05/07 HTML / CSS
中医药大学毕业生自荐信
2013/11/08 职场文书
环境科学专业个人求职的自我评价
2013/11/28 职场文书
入学申请自荐信范文
2014/02/26 职场文书
美术指导求职信
2014/03/17 职场文书
怀念母亲教学反思
2014/04/28 职场文书
2014年重阳节老干部座谈会上的讲话稿
2014/09/25 职场文书
赢在中国观后感
2015/06/02 职场文书
学校扫黄打非工作总结
2015/10/15 职场文书
关于Javascript闭包与应用的详解
2021/04/22 Javascript
pytorch 权重weight 与 梯度grad 可视化操作
2021/06/05 Python
python画条形图的具体代码
2022/04/20 Python
python和anaconda的区别
2022/05/06 Python
Nginx开源可视化配置工具NginxConfig使用教程
2022/06/21 Servers