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 < ...
随机推荐
- C# 移动开发 MasterDetailPage 关闭时报错问题
至上次发表的 MasterDetailPage界面做主App,折腾10天,终于知道问题所在.. 泪奔的是解决这个问题只要一句代码 在MainActivity.cs里 [Activity(Label = ...
- sqlite3:深入理解sqlite3_stmt 机制
我们在使用sqlite3的过程中,涉及到批量操作时(批量插入.批量读...),总会遇到 sqlite3_stmt这个数据类型,按照官方解释说法是这样的:sqlite3_stmt是C接口中“准备语句对象 ...
- T1订正记-AC自动机-从树到图
AC自动机已经足够棒了. 但是,好像有时还是要TLE的. 一般的AC自动还是比较好,如果在某些情况下还是会被卡掉,像是这个水题 考试的感觉 我看到这个题后,我清清楚楚的知道,这是个AC自动机+栈. 经 ...
- @click.native 会触发原生 click事件 vue
@click.native 会触发原生 click事件 vue
- 课外作业(建立double类型的小数,按照四舍五入保留2位小数)
举例:
- DedeCMS文章标题长度最全修改方法
有时候DedeCMS首页或者其他页面不能全部展示文章标题,造成读者阅读体验差.一般来说标题精简.概括性强.有本文关键词就是一个好标题.写软文不比写“作文”,也不是论坛的标题党,软文是用来做排名的,主要 ...
- python常用模块之random
random模块 import random print(random.random())#(0,1)----float 大于0且小于1之间的小数 print(random.randint(1,3)) ...
- MyBatis基本运行环境
MyBatis基本运行环境 1. 创建项目 2.拷贝jar加入到项目中build path jar包 3.创建数据库的表及数据添加 USE [mybatis] CREATE TABLE [dbo].[ ...
- Redis进阶例子
工作中用到的RabbitMQ例子 , 但是最后没有用 , 用的CMQ , 顺便说下CMQ社区真的少 , 并且功能少 . 一.消息体 package com.bootdo.common.rabbitmq ...
- day13 函数模块之序列化 random 模块 os模块 sys模块 hashlib模块 collections模块
json import json dic = {'k1':'v1','k2':'v2','k3':'v3'} str_dic = json.dumps(dic) #序列化:将一个字典转换成一个字符串 ...