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获取一组数据里最大值max函数用法实例
May 26 Python
Python cookbook(数据结构与算法)保存最后N个元素的方法
Feb 13 Python
python实现文本界面网络聊天室
Dec 12 Python
python实时获取外部程序输出结果的方法
Jan 12 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
Apr 23 Python
Python OpenCV之图片缩放的实现(cv2.resize)
Jun 28 Python
Python Web程序搭建简单的Web服务器
Jul 31 Python
Python实现变声器功能(萝莉音御姐音)
Dec 05 Python
Python正则表达式急速入门(小结)
Dec 16 Python
手把手教你安装Windows版本的Tensorflow
Mar 26 Python
500行python代码实现飞机大战
Apr 24 Python
Python网页解析器使用实例详解
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
PHP教程 变量定义
2009/10/23 PHP
兼容PHP和Java的des加密解密代码分享
2014/06/26 PHP
php中namespace及use用法分析
2016/12/06 PHP
自制PHP框架之模型与数据库
2017/05/07 PHP
PHP实现获取url地址中顶级域名的方法示例
2019/06/05 PHP
PHP设计模式入门之状态模式原理与实现方法分析
2020/04/26 PHP
JS嵌套函数调用上下文的问题解决
2014/03/26 Javascript
js对象内部访问this修饰的成员函数示例
2014/04/27 Javascript
jquery统计用户选中的复选框的个数
2014/06/06 Javascript
深入理解JavaScript系列(36):设计模式之中介者模式详解
2015/03/04 Javascript
常见的javascript跨域通信方法
2015/12/31 Javascript
用JS写的一个Ajax库(实例代码)
2016/08/06 Javascript
Angular下H5上传图片的方法(可多张上传)
2017/01/09 Javascript
微信小程序 开发之滑块视图容器(swiper)详解及实例代码
2017/02/22 Javascript
JS实现中文汉字按拼音排序的方法
2017/10/09 Javascript
vue-cli之router基本使用方法详解
2017/10/17 Javascript
vue-cli+iview项目打包上线之后图标不显示问题及解决方法
2019/10/16 Javascript
[02:09:59]火猫TV国士无双dota2 6.82版本详解(下)
2014/09/29 DOTA
Python 冒泡,选择,插入排序使用实例
2015/02/05 Python
Python利用正则表达式匹配并截取指定子串及去重的方法
2015/07/30 Python
Python应用库大全总结
2018/05/30 Python
Python使用一行代码获取上个月是几月
2018/08/30 Python
Python 获取中文字拼音首个字母的方法
2018/11/28 Python
浅谈python编译pyc工程--导包问题解决
2019/03/20 Python
Python中字符串与编码示例代码
2019/05/20 Python
python:按行读入,排序然后输出的方法
2019/07/20 Python
Python 分发包中添加额外文件的方法
2019/08/16 Python
Python collections.defaultdict模块用法详解
2020/06/18 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
VSCode 自定义html5模板的实现
2019/12/05 HTML / CSS
西班牙多品牌鞋店连锁店:Krack
2018/11/30 全球购物
白莲教口号
2014/06/18 职场文书
2015年宣传思想工作总结
2015/05/22 职场文书
萤火虫之墓观后感
2015/06/05 职场文书
校运会新闻稿
2015/07/17 职场文书
新郎结婚感言
2015/07/31 职场文书