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中的zip函数使用示例
Jan 29 Python
Python决策树分类算法学习
Dec 22 Python
Pyqt5如何让QMessageBox按钮显示中文示例代码
Apr 11 Python
Django集成搜索引擎Elasticserach的方法示例
Jun 04 Python
浅谈python3中input输入的使用
Aug 02 Python
pytorch三层全连接层实现手写字母识别方式
Jan 14 Python
如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
May 24 Python
pygame用blit()实现动画效果的示例代码
May 28 Python
PyQT5 实现快捷键复制表格数据的方法示例
Jun 19 Python
pycharm导入源码的具体步骤
Aug 04 Python
python 获取字典键值对的实现
Nov 12 Python
用Python写一个简易版弹球游戏
Apr 13 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新手上路(五)
2006/10/09 PHP
php常量详细解析
2015/10/27 PHP
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
2016/09/11 PHP
Yii框架批量插入数据扩展类的简单实现方法
2017/05/23 PHP
Thinkphp集成抖音SDK的实现方法
2020/04/28 PHP
XAMPP升级PHP版本实现步骤解析
2020/09/04 PHP
JavaScript Array扩展实现代码
2009/10/14 Javascript
仿猪八戒网左下角的文字滚动效果
2011/10/28 Javascript
Js参数值中含有单引号或双引号问题的解决方法
2013/11/06 Javascript
node.js中的path.delimiter方法使用说明
2014/12/09 Javascript
JavaScript浮点数及运算精度调整详解
2016/10/21 Javascript
浅谈js算法和流程控制
2016/12/29 Javascript
基于Vue2.0的分页组件
2017/03/16 Javascript
浅探express路由和中间件的实现
2019/09/30 Javascript
vue路由拦截器和请求拦截器知识点总结
2019/11/08 Javascript
[04:40]2016个国际邀请赛中国区预选赛场地——华西村观战指南
2016/06/25 DOTA
Python基于DES算法加密解密实例
2015/06/03 Python
CentOS 6.X系统下升级Python2.6到Python2.7 的方法
2016/10/12 Python
Python基于回溯法子集树模板解决野人与传教士问题示例
2017/09/11 Python
Python打包方法Pyinstaller的使用
2018/10/09 Python
python 文本单词提取和词频统计的实例
2018/12/22 Python
python批量修改文件夹及其子文件夹下的文件内容
2019/03/15 Python
python用Tkinter做自己的中文代码编辑器
2020/09/07 Python
Python tkinter之Bind(绑定事件)的使用示例
2021/02/05 Python
html5实现的便签特效(实战分享)
2013/11/29 HTML / CSS
Uber Eats台湾:寻找附近提供送餐服务的餐厅
2018/05/07 全球购物
乌克兰第一的珠宝网上商店:Gold.ua
2019/11/29 全球购物
家庭教育先进个人事迹材料
2014/01/24 职场文书
大学生社团活动总结
2014/04/26 职场文书
爱国主义教育活动总结
2014/05/07 职场文书
核心价值观演讲稿
2014/05/13 职场文书
2014年党员自我评议对照检查材料
2014/09/20 职场文书
起诉意见书范文
2015/05/19 职场文书
2015年会计年终工作总结
2015/05/26 职场文书
2015入党自传格式范文
2015/06/26 职场文书
Python实现科学占卜 让视频自动打码
2022/04/09 Python