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单链表实现代码实例
Nov 21 Python
python协程用法实例分析
Jun 04 Python
Python subprocess库的使用详解
Oct 26 Python
Django中使用 Closure Table 储存无限分级数据
Jun 06 Python
简单了解Python matplotlib线的属性
Jun 29 Python
Python 分享10个PyCharm技巧
Jul 13 Python
基于Python的微信机器人开发 微信登录和获取好友列表实现解析
Aug 21 Python
python脚本之一键移动自定格式文件方法实例
Sep 02 Python
python连接mysql有哪些方法
Jun 24 Python
python subprocess pipe 实时输出日志的操作
Dec 05 Python
python基于爬虫+django,打造个性化API接口
Jan 21 Python
使用python如何删除同一文件夹下相似的图片
May 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
php上传图片存入数据库示例分享
2014/03/11 PHP
PHP命令行脚本接收传入参数的三种方式
2014/08/20 PHP
PHP实现一维数组转二维数组的方法
2015/02/25 PHP
php实现指定字符串中查找子字符串的方法
2015/03/17 PHP
详解PHP中instanceof关键字及instanceof关键字有什么作用
2015/11/05 PHP
来自国外的页面JavaScript文件优化
2010/12/08 Javascript
jQuery EasyUI API 中文文档 - Menu菜单
2011/10/03 Javascript
基于jquery的防止大图片撑破页面的实现代码(立即缩放)
2011/10/24 Javascript
轻松创建nodejs服务器(10):处理POST请求
2014/12/18 NodeJs
javascript文本模板用法实例
2015/07/31 Javascript
JS基于myFocus库实现各种功能的tab选项卡切换效果
2015/09/19 Javascript
jQuery实现手机自定义弹出输入框
2016/06/13 Javascript
jQuery 3.0中存在问题及解决办法
2016/07/15 Javascript
避免jQuery名字冲突 noConflict()方法
2016/07/30 Javascript
图文详解JavaScript的原型对象及原型链
2016/08/02 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
2016/11/10 Javascript
js css3实现图片拖拽效果
2017/03/04 Javascript
微信小程序遇到修改数据后页面不渲染的问题解决
2017/03/09 Javascript
vue-cli入门之项目结构分析
2017/04/20 Javascript
基于es6三点运算符的使用方法(实例讲解)
2017/10/12 Javascript
layui table 表格模板按钮的实例代码
2019/09/21 Javascript
JavaScript如何处理移动端拍摄图片旋转问题
2019/11/16 Javascript
vue随机验证码组件的封装实现
2020/02/19 Javascript
Python实现冒泡,插入,选择排序简单实例
2014/08/18 Python
Python二维码生成库qrcode安装和使用示例
2014/12/16 Python
python实现unicode转中文及转换默认编码的方法
2017/04/29 Python
详解Python函数式编程—高阶函数
2019/03/29 Python
python反编译学习之字节码详解
2019/05/19 Python
一篇文章了解Python中常见的序列化操作
2019/06/20 Python
Python实现初始化不同的变量类型为空值
2020/06/02 Python
PatPat阿根廷:妈妈们的购物平台
2019/05/30 全球购物
会计职业生涯规划范文
2014/01/04 职场文书
《美丽的黄昏》教学反思
2014/02/28 职场文书
应届大专生自荐书
2014/06/16 职场文书
政风行风自查自纠报告
2014/10/21 职场文书
Win11安全功能升级:内置防网络钓鱼功能
2022/04/08 数码科技