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的print用法示例
Feb 11 Python
python使用datetime模块计算各种时间间隔的方法
Mar 24 Python
详解Django中的ifequal和ifnotequal标签使用
Jul 16 Python
Scrapy的简单使用教程
Oct 24 Python
python 读取目录下csv文件并绘制曲线v111的方法
Jul 06 Python
python的几种矩阵相乘的公式详解
Jul 10 Python
Python的Tkinter点击按钮触发事件的例子
Jul 19 Python
wxPython实现画图板
Aug 27 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
Jan 21 Python
快速解决jupyter启动卡死的问题
Apr 10 Python
scrapy实践之翻页爬取的实现
Jan 05 Python
python 列表推导和生成器表达式的使用
Feb 01 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
历史证明,懒惰才是推动科学发展技术进步的动力
2021/03/02 无线电
Yii调试SQL的常用方法
2014/07/09 PHP
php过滤所有的空白字符(空格、全角空格、换行等)
2015/10/27 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
2018/07/31 PHP
event.srcElement+表格应用
2006/08/29 Javascript
javascript操作cookie的文章(设置,删除cookies)
2010/04/01 Javascript
js 创建书签小工具之理论
2011/02/25 Javascript
javascript:history.go()和History.back()的区别及应用
2012/11/25 Javascript
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
2014/09/26 NodeJs
AngularJS表单编辑提交功能实例
2015/02/13 Javascript
jquery实现简单手风琴菜单效果实例
2015/06/13 Javascript
js实现的下拉框二级联动效果
2016/04/30 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
2017/01/30 Javascript
vue高德地图之玩转周边
2017/06/16 Javascript
vue 项目 iOS WKWebView 加载
2019/04/17 Javascript
Javascript 对象(object)合并操作实例分析
2019/07/30 Javascript
详谈vue中router-link和传统a链接的区别
2020/07/22 Javascript
Python实现将字符串的首字母变为大写,其余都变为小写的方法
2019/06/11 Python
Python的matplotlib绘图如何修改背景颜色的实现
2019/07/16 Python
把django中admin后台界面的英文修改为中文显示的方法
2019/07/26 Python
Python3将数据保存为txt文件的方法
2019/09/12 Python
安装python及pycharm的教程图解
2019/10/10 Python
Python通过kerberos安全认证操作kafka方式
2020/06/06 Python
CSS Houdini实现动态波浪纹效果
2019/07/30 HTML / CSS
使用HTML5 IndexDB存储图像和文件的示例
2018/11/05 HTML / CSS
澳大利亚免息网上购物:Shop Zero
2016/09/17 全球购物
世界领先的豪华床上用品供应商之一:Bedeck Home
2019/03/18 全球购物
英国No.1体育用品零售商:SportsDirect.com
2019/10/16 全球购物
如何写出好的Java代码
2014/04/25 面试题
Java Servlet的主要功能和作用是什么
2014/02/14 面试题
大学生职业生涯规划范文——找准自我,定位人生
2014/01/23 职场文书
党的群众路线剖析材料
2014/10/09 职场文书
2015年精神文明建设工作总结
2015/04/21 职场文书
小学生纪律委员竞选稿
2015/11/19 职场文书
详解Python描述符的工作原理
2021/06/11 Python
MYSQL事务的隔离级别与MVCC
2022/05/25 MySQL