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中dict与set的使用
Aug 10 Python
Python内置函数OCT详解
Nov 09 Python
浅谈Python由__dict__和dir()引发的一些思考
Oct 30 Python
Python使用Scrapy保存控制台信息到文本解析
Dec 27 Python
djano一对一、多对多、分页实例代码
Aug 16 Python
python 公共方法汇总解析
Sep 16 Python
基于python及pytorch中乘法的使用详解
Dec 27 Python
python解释器pycharm安装及环境变量配置教程图文详解
Feb 26 Python
基于python计算并显示日间、星期客流高峰
May 07 Python
python中如何设置代码自动提示
Jul 15 Python
pycharm中使用request和Pytest进行接口测试的方法
Jul 31 Python
python读取excel数据并且画图的实现示例
Feb 08 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基于MySQLI函数封装的数据库连接工具类【定义与用法】
2017/08/11 PHP
滚动经典最新话题[prototype框架]下编写
2006/10/03 Javascript
JQuery最佳实践之精妙的自定义事件
2010/08/11 Javascript
JavaScript动态创建div属性和样式示例代码
2013/10/09 Javascript
js中AppendChild与insertBefore的用法详细解析
2013/12/16 Javascript
通过JS动态创建一个html DOM元素并显示
2014/10/15 Javascript
javascript模拟php函数in_array
2015/04/27 Javascript
浅谈javascript函数式编程
2015/09/06 Javascript
jQuery多条件筛选如何实现
2015/11/04 Javascript
JavaScript html5 canvas绘制时钟效果
2016/03/01 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
2016/05/17 Javascript
Javascript必知必会(四)js类型转换
2016/06/08 Javascript
IONIC自定义subheader的最佳解决方案
2016/09/22 Javascript
Vuejs实现带样式的单文件组件新方法
2017/05/02 Javascript
如何让node运行es6模块文件及其原理详解
2018/12/11 Javascript
浅谈JavaScript闭包
2019/04/09 Javascript
详解可以用在VS Code中的正则表达式小技巧
2019/05/14 Javascript
Vue使用自定义指令实现拖拽行为实例分析
2020/06/06 Javascript
JS实现京东商品分类侧边栏
2020/12/11 Javascript
[08:29]DOTA2每周TOP10 精彩击杀集锦vol.7
2014/06/25 DOTA
[01:04:22]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 IG vs EG
2018/04/01 DOTA
Python subprocess模块学习总结
2014/03/13 Python
python实现发送邮件及附件功能
2021/03/02 Python
python中学习K-Means和图片压缩
2017/11/20 Python
浅析python继承与多重继承
2018/09/13 Python
windows下cx_Freeze生成Python可执行程序的详细步骤
2018/10/09 Python
python正则表达式匹配不包含某几个字符的字符串方法
2019/07/23 Python
如何使用python操作vmware
2019/07/27 Python
python在OpenCV里实现投影变换效果
2019/08/30 Python
Python 实现自动完成A4标签排版打印功能
2020/04/09 Python
Python matplotlib模块及柱状图用法解析
2020/08/10 Python
草莓网化妆品日本站:Strawberrynet日本
2017/10/20 全球购物
美国医疗用品、医疗设备和家庭保健用品商店:Medical Supply Depot
2018/07/08 全球购物
英国领先的鞋类零售商和顶级品牌的官方零售商:Wynsors
2020/02/17 全球购物
计算机专业学生的自我评价
2013/12/15 职场文书
岗位竞聘演讲稿
2014/01/10 职场文书