Python使用shutil模块实现文件拷贝
作者:Tracydzf 发布时间:2021-02-01 14:46:28
主要作用与拷贝文件用的。
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')
来源:https://www.cnblogs.com/tracydzf/p/13399413.html


猜你喜欢
- 当你有多个进程或线程访问相同的数据时,竞争条件是一个威胁。本文探讨了在发现竞争条件后如何测试它们。Incrmnt你在一个名为“Incrmnt
- 目录爬虫Python验证码识别 1、批量下载验证码图片2、识别代码看看效果 3、折腾降噪、去干扰爬虫Python验证码识
- 解决MAC下MySQL忘记初始密码的方法分享给大家,供大家参考,具体内容如下第一步:点击系统偏好设置->最下边点MySQL,在弹出页面
- 一、配置抓包工具1.安装软件本文选择的抓包工具:Fiddler 具体的下载安装这里不详细赘述!(网上搜Fiddler安
- 前言检测图像中对象颜色的一种简单方法是首先将图像从 RGB 转换为 HSV 颜色空间,然后使用一系列色调检测对象,这可以通过使用 OpenC
- 之前因为项目的原因需要使用Oracle数据库,由于时间有限没办法从基础开始学习,而且oracle操作的命令界面又太不友好,于是就找到了PL/
- 前段时间写了一个百度图片下载器,结果发现有很多人需要使用。说实话之前写的那一款百度图片下载器比较LOW,今天刚好有时间就做了一下升级。更新了
- 1.什么是标准库(Standard Library)标准库指的是js的标准内置对象,是js这门语言本身初始时提供的在全局范围的对象2.Obj
- 使用TensorFlow模块时,弹出错误Your CPU supports instructions that this TensorFlo
- 前言大家都知道,Python自带的datetime库提供了将datetime转为ISO 8610格式的函数,但是对于时间间隔(inteval
- golang 字符串 int uint int64 uint64 互转字符串 转 intintNum, _ = strconv.Atoi(i
- 写这段代码的原因是昨天项目中遇到的一个问题。一同事要求 写一个效果要求鼠标掠过表格行该行颜色改变以突出显示。这个倒不难,那哥们直接为每个Tr
- 在上一篇博客介绍TOML配置的时候,讲到了通过信号通知重载配置。我们在这一篇中介绍下如何的平滑重启server。与重载配置相同的是我们也需要
- 这篇文章主要介绍了Python动态声明变量赋值代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 不错,这个是一个文章详细页,没有左右两栏布局,不过这里我重点要讲的是合理的布局,在稍后的文章中我会详细的介绍浮动元素。好,回到刚才的话题,大
- 前言MySQL中有六种日志文件,分别是:重做日志(redo log)、回滚日志(undo log)、二进制日志(binlog)、错误日志(e
- 首先看一下目标的验证形态是什么样子的是一种通过验证推理的验证方式,用来防人机破解的确是很有效果,但是,But,这里面已经会有一些破绽,比如:
- using System;using System.Data.SqlClient;namespace ExecuteSqlTran{&nbs
- 部署环境:安装版本red hat Cent 7.0MYSQL 版本 8.0.2.0成功部署完毕后出现故障情况:1. &
- pycharm出现no module named xlwt问题首先声明,我是初学者,今天按照书上步骤,创建Excel文件,当我的xlwt安装