python学习之-- shutil模块
shutil 模块
功能:文件/文件夹的复制,压缩处理模块
shutil.copyfileobj(fsrc,fdst[,length]):将文件内容拷贝到另一个文件中,也可以是部分内容
举例:文件复制
import shutil
# 必须先准备好读写的文件
sfile = open('func1.py',encoding='utf-8')
dfile = open('func1.py.bak','w',encoding='utf-8')
# 进行内容的复制
shutil.copyfileobj(sfile,dfile)
注意:显然以上这个方法不实用,下面的方法最实用!
shutil.copy(src,dst):直接将源文件复制到目标,包括文件权限
如:shutil.copy('/var/log/message','message')
shutil.copyfile(src,dst):直接将源文件复制到目标,不包括文件权限
shutil.copymode(src,dst):复制文件权限,用户组不变
shutil.copystat(src,dst):复制文件状态(文件的时间等属性)的信息,包括:mode bits,atime,mtime,flags
shutil.copy2(src,dst):复制文件和权限状态信息(全复制)
shutil.copytree(src,dst):复制整个目录
shutil.rmtree(src):删除目录
shutil.move(src,dst):移动文件或文件夹
shutil.make_archive(base_name,format,..):创建压缩包并返回文件路径。缺点:无法过滤。例如:zip,tar
base_name:压缩包的文件名,也可以是包路径,只是文件名时,保存到当前目录,否则保存到指定目录。
format:压缩包种类(zip,tar,bztar,gztar)
root_dir:要压缩的文件夹路径(默认当前目录)
owner:用户,默认当前用户
group:组,默认当前组
logger:用户记录日志
举例:将/var/log的文件打包放入当前目录
import shutil
ret = shutil.make_archive('wwwwww','gztar',root_dir='/var/log')
举例2:将/var/log/的文件打包放入/root/目录
ret = shutil.make_archive('root/wwww','gztar',root_dir='/var/log')
注意:以上打包为zip后,最好用zipfile模块解包。
shutil对压缩包的处理是调用ZipFile和TarFile 模块
如:使用ZipFile进行压缩和解压
import zipfile
#注意,zipfile只能压缩文件,压缩目录只有目录结构
#压缩:
z = zipfile.ZipFile('bk.zip','w')
z.write('a.log')
z.write('data.log')
z.close()
#解压
z = zipfile.ZipFile('bk.zip','r')
z.extractall()
z.close()
如:用tar进行打包(但是不压缩,压缩需要使用zipfile)
import tarfile
tar = tarfile.open('/root/your.tar','w')
#注意:这里使用了arcname,则打包后的只将log下的文件全部打包到test文件夹里,如果不带arcname参数,则打包的是路径+文件
tar.add('/var/log',arcname='test')
tar.add('/test.zip')
tar.close()
python学习之-- shutil模块的更多相关文章
- Python第二十天 shutil 模块 zipfile tarfile 模块
Python第二十天 shutil 模块 zipfile tarfile 模块 os文件的操作还应该包含移动 复制 打包 压缩 解压等操作,这些os模块都没有提供 shutil 模块shut ...
- Python学习 Part4:模块
Python学习 Part4:模块 1. 模块是将定义保存在一个文件中的方法,然后在脚本中或解释器的交互实例中使用.模块中的定义可以被导入到其他模块或者main模块. 模块就是一个包含Python定义 ...
- python中的shutil模块
目录 python中的shutil模块 目录和文件操作 归档操作 python中的shutil模块 shutil模块对文件和文件集合提供了许多高级操作,特别是提供了支持文件复制和删除的函数. 目录和文 ...
- python学习之argparse模块
python学习之argparse模块 一.简介: argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块.argparse模块的作用是用于解析命令行 ...
- Python学习day19-常用模块之re模块
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...
- Python学习day18-常用模块之NumPy
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...
- Python学习笔记-常用模块
1.python模块 如果你退出 Python 解释器并重新进入,你做的任何定义(变量和方法)都会丢失.因此,如果你想要编写一些更大的程序,为准备解释器输入使用一个文本编辑器会更好,并以那个文件替代作 ...
- python学习笔记五 模块下(基础篇)
shevle 模块 扩展pickle模块... 1.潜在的陷进 >>> import shelve>>> s = shelve.open("nb" ...
- python学习之random模块
Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...
随机推荐
- HV000184: ParameterMessageInterpolator has been chosen, EL interpolation will not be supported问题解决
今天创建springboot项目的时候添加完依赖启动出现了这个错误 -- :: --- [ main] o.h.v.m.ParameterMessageInterpolator : HV000184: ...
- php 生成饼状图,折线图,条形图 通用类 2
生成饼状图,折线图,条形图通用的php类,这里使用的是国外的 HighCharts,前台页面别忘了调用HighCahrt js HighCharts中文网站 http://www.hcharts. ...
- 获取页面URL两种方式
以请求http://localhost:8080/doctor/demo?code=1为例 一:用java代码获取 //获取URL中的请求参数.即?后的条件 code=1 String querySt ...
- H3C S5024P交换机 H3C AR28-31路由器命令
H3C S5024P交换机 H3C AR28-31路由器命令 交换机命令 各个视图的切换: 注意命令要在相应的视图下执行 在用户视图下键入quit命令可以断开与交换机的连接.在其它视图中键入quit命 ...
- (转)为Spring集成的Hibernate配置二级缓存
http://blog.csdn.net/yerenyuan_pku/article/details/52896195 前面我们已经集成了Spring4.2.5+Hibernate4.3.11+Str ...
- function语句注意事项
function语句 在Javascript中定义一个函数,有两种写法: function foo() { } 和 var foo = function () { } 两种写法完全等价.但是在解析的时 ...
- Vickers Vane Pump - How To Choose Vane Pump Parameter Specifications?
1 rated pressure selection. The rated pressure of the vane pump products is 7MPa, 1OMPa, 16MPa, 2lMP ...
- net core 使用ef生成实体类(SqlServer)
1)打开程序包管理器控制台 2)输入命令 Install-Package Microsoft.EntityFrameworkCore.SqlServer 3)输入命令 Install-Packag ...
- 【简●解】POJ 1185,LG P2704【炮兵阵地】
POJ 1185,LG P2704[炮兵阵地] 状压经典入门. [传送门] POJ 1185 洛谷 P2704 [题目大意] 司令部的将军们打算在 \(N\times M\) 的网格地图上部署他们的炮 ...
- 查看mysql二进制日志报错问题
在排查网站被黑时想通过Mysql二进制日志找出修改字段时间,但是使用mysqlbinlog报错: [root@zfszsw1 bin]# ./mysqlbinlog /opt/mysql-bin.00 ...