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最长公共子串算法实例
Mar 07 Python
机器学习实战之knn算法pandas
Jun 22 Python
Python制作微信好友背景墙教程(附完整代码)
Jul 17 Python
Django 实现前端图片压缩功能的方法
Aug 07 Python
查看Python依赖包及其版本号信息的方法
Aug 13 Python
Python学习笔记之集合的概念和简单使用示例
Aug 22 Python
python监控nginx端口和进程状态
Sep 06 Python
Python 如何优雅的将数字转化为时间格式的方法
Sep 26 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
Nov 15 Python
解决django model修改添加字段报错的问题
Nov 18 Python
python程序如何进行保存
Jul 03 Python
python解压zip包中文乱码解决方法
Nov 27 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中将时间差转换为字符串提示的实现代码
2011/08/08 PHP
curl不使用文件存取cookie php使用curl获取cookie示例
2014/01/26 PHP
通过Javascript创建一个选择文件的对话框代码
2012/06/16 Javascript
jquery 中多条件选择器,相对选择器,层次选择器的区别
2012/07/03 Javascript
jquery在Chrome下获取图片的长宽问题解决
2013/03/20 Javascript
javascript 用函数语句和表达式定义函数的区别详解
2014/01/06 Javascript
jquery中append()与appendto()用法分析
2014/11/14 Javascript
基于javascript实现彩票随机数生成(简单版)
2020/04/17 Javascript
微信开发 使用picker封装省市区三级联动模板
2016/10/28 Javascript
vue中的过滤器实例代码详解
2019/06/06 Javascript
通过实例了解js函数中参数的传递
2019/06/15 Javascript
js中addEventListener()与removeEventListener()用法案例分析
2020/03/02 Javascript
原生JS实现萤火虫效果
2020/03/07 Javascript
Vue如何基于es6导入外部js文件
2020/05/15 Javascript
JavaScript中EventBus实现对象之间通信
2020/10/18 Javascript
vue中实现点击空白区域关闭弹窗的两种方法
2020/12/30 Vue.js
python中执行shell命令的几个方法小结
2014/09/18 Python
Python使用pyodbc访问数据库操作方法详解
2018/07/05 Python
在scrapy中使用phantomJS实现异步爬取的方法
2018/12/17 Python
Python操作rabbitMQ的示例代码
2019/03/19 Python
django 中的聚合函数,分组函数,F 查询,Q查询
2019/07/25 Python
30秒学会30个超实用Python代码片段【收藏版】
2019/10/15 Python
python 项目目录结构设置
2020/02/14 Python
jupyter notebook实现显示行号
2020/04/13 Python
Mio Skincare中文官网:肌肤和身体护理
2016/10/26 全球购物
世界知名接发和假发品牌:Poze Hair
2017/03/08 全球购物
小区门卫工作职责
2013/12/14 职场文书
读书月活动方案
2014/05/22 职场文书
工地标语大全
2014/06/18 职场文书
扬州个园导游词
2015/02/06 职场文书
2015年入党积极分子培养考察意见
2015/08/12 职场文书
社会实践心得体会范文
2016/01/14 职场文书
创业的9条正确思考方式
2019/08/26 职场文书
解决hive中导入text文件遇到的坑
2021/04/07 Python
基于python实现银行管理系统
2021/04/20 Python
Ruby序列化和持久化存储 Marshal和Pstore介绍
2022/04/18 Ruby