20180209-shutil模块
下面讲解shutil模块的相关操作:
1.shutil.copyfileobj(fsrc, fdst, length=16*1024) 将fsrc文件内容拷贝到fdst文件中,length是指一次拷贝多少个字节
源码:def copyfileobj(fsrc, fdst, length=16*1024):"""copy data from file-like object fsrc to file-like object fdst"""while 1:buf = fsrc.read(length)if not buf:breakfdst.write(buf)
不难发现,copyfileobj方法中length参数是指一次拷贝多少个字符(以字符形式读取文件,如果以字节的形式读取,则length值字节数),内部的实现通过一个while死循环来遍历fsrc文件的length长度字符,并写入fdst文件中,如果不写则默认length = 16 * 1024
# 1.将文件内容拷贝到另一个文件中 shutil.copyfileobj(fsrc, fdst, length=16*1024),可以指定一次拷贝多少内容,本例不写,则默认读取16 * 1024个字节 ret = shutil.copyfileobj(open('file_01.txt'),open('file_02.txt','w')) print('将文件内容拷贝到另一个文件中:',ret)
2.shutil.copyfile(src, dst) 拷贝文件,dst目标文件无需存在
#2.拷贝文件 shutil.copyfile(src, dst) dst目标文件无需存在 ret = shutil.copyfile('file_01.txt','file_03.txt') print('拷贝文件:',ret)
3.shutil.copymode(src,dst)仅拷贝权限,内容、组、用户均不变,dst目标文件必须存在
# 3.仅拷贝权限,内容、组、用户均不变 dst目标文件必须存在 ret = shutil.copymode('file_01.txt','file_04.txt') print('仅拷贝权限:',ret)
4.shutil.copystat(src,dst)仅拷贝状态的信息,包括mode bits、atime、mtime、flags dst目标文件必须存在
# 4.仅拷贝文件状态 包括mode bits、atime、mtime、flags dst目标文件必须存在 ret = shutil.copystat('file_01.txt','file_05.txt') print('仅拷贝文件状态:',ret)
5.shutil.copy(src,dst)拷贝文件和权限 dst目标文件无需存在
# 5.shutil.copy(src,dst) 拷贝文件和权限 dst目标文件无需存在 ret = shutil.copy('file_01.txt','file_06.txt') print('拷贝文件和权限:',ret)
6.shutil.copy2(src,dst)拷贝文件和状态信息 dst目标文件无需存在
# 6.shutil.copy2(src,dst) 拷贝文件和状态 dst目标文件无需存在 ret= shutil.copy2('file_01.txt','file_07.txt') print('拷贝文件和状态:',ret)
7.shutil.copytree(src, dst, symlinks=False, ignore=None) 递归的去拷贝文件夹,ignore参数可以设置忽略文件 dst目标文件不能存在,否则报错
shutil.ignore_patterns('__init__.py','views.py')
# 7.shutil.copytree(src, dst, symlinks=False, ignore=None) 递归的去拷贝文件夹 ret = shutil.copytree('file01','file02',ignore=shutil.ignore_patterns('__init__.py','views.py')) print('递归拷贝文件目录:',ret)
8.shutil.rmtree(src) 递归删除文件 src源文件必须存在,否则报错
# 8.shutil.rmtree(path[, ignore_errors[, onerror]]) 递归的删除文件 ret = shutil.rmtree('file02') print('递归删除文件:',ret)
9.shutil.move(src,dst)递归移动文件,src源文件必须存在,否侧报错
# 9.shutil.move(src,dst) 递归移动文件,类似mv命令 ret = shutil.move('file01','file02') print('递归移动文件:',ret)
重点学习
项目的目录结构如下:
1.压缩文件
make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0, dry_run=0, owner=None, group=None, logger=None)
创建压缩包并返回文件路径,例如zip、tar
base_name 压缩包的文件名,也可以是压缩包的路径,只是文件名时,则保存到当前目录,否则保存到指定路径
format 压缩包的种类 'zip'、'tar'、'bztar'、'gztar'
root_dir 要压缩的文件夹路径(默认当前目录)
logger 用于记录日志,通常是logging.Logger对象
# 压缩fil02文件夹,由于shutil_exercise.py所在目录是shutil下,如果不指定root_dir,怎会将shutil目录下的所有文件都压缩到file02.zip包中# 将/file02下文件压缩放置到当前目录下ret = shutil.make_archive('file02','zip',root_dir='./file02') print('压缩文件:',ret)
shutil对压缩包的处理是调用ZipFile和TarFile两个模块进行的,详细讲解:
zipfile的压缩/解压
# 压缩 z = zipfile.ZipFile('file01.zip','w') z.write('file_01.txt') z.write('file_02.txt') z.write('file02') z.close()# 解压 # 将file01.zip压缩包的内容解压到当前目录的file01目录下 z = zipfile.ZipFile('file01.zip','r') z.extractall(path='./file01') z.close()
注意:zipfile不能压缩目录,只能压缩文件,也就意味着压缩后的文件中file02只是一个空目录,目录下的文件不会被压缩
tarfile的压缩/解压
import tarfile # 压缩 t = tarfile.open('tmp/file01.tar','w') t.add('file_01.txt',arcname='file_01.bak') t.add('file01') t.close()# 解压 t = tarfile.TarFile('tmp/file01.tar','r') t.extractall('tmp/tar') t.close()
注意:tarfile可以压缩目录
转载于:https://www.cnblogs.com/it-q/p/8435676.html
20180209-shutil模块相关推荐
- Python中os和shutil模块实用方法集锦
Python中os和shutil模块实用方法集锦 类型:转载 时间:2014-05-13 这篇文章主要介绍了Python中os和shutil模块实用方法集锦,需要的朋友可以参考下 复制代码代码如下: ...
- python中shutil模块_python文件、文件夹、压缩包处理模块-shutil模块-阿里云开发者社区...
shutil模块 高级的文件.文件夹.压缩包 处理模块 本节内容基本在linux下python交互环境实现 复制移动文件.文件夹 将文件内容拷贝到另一个文件中,可以部分内容 格式如下: ``` shu ...
- python使用os和shutil模块进行文件创建,删除,移动,复制,重命名
python使用os和shutil模块进行文件创建,删除,移动,复制,重命名 文章目录: 1 os模块的使用 1.1 os不带path 1.1.1 os.sep 属性:返回系统路径分隔符 1.1.2 ...
- python中shutil模块的用法_python中的os,shutil模块的定义以及用法
#os 模块 os.sep 可以取代操作系统特定的路径分隔符.windows下为'\\'os.name 字符串指示你正在使用的平台.比如对于Windows,它是'nt',而对于Linux/Unix用户 ...
- python的shutil模块是内置的_Python之shutil模块11个常用函数详解,python内置函数是什么...
Python之shutil模块11个常用函数详解,python内置函数是什么 shutil 是 Python 中的高级文件操作模块,与os模块形成互补的关系,os主要提供了文件或文件夹的新建.删除.查 ...
- 【Python入门】Python之shutil模块11个常用函数详解
shutil 是 Python 中的高级文件操作模块,与os模块形成互补的关系,os主要提供了文件或文件夹的新建.删除.查看等方法,还提供了对文件以及目录的路径操作.shutil模块提供了移动.复制. ...
- python创建模块文件夹_python文件、文件夹、压缩包处理模块-shutil模块
shutil模块 高级的文件.文件夹.压缩包 处理模块 本节内容基本在linux下python交互环境实现 复制移动文件.文件夹 将文件内容拷贝到另一个文件中,可以部分内容 格式如下: ``` shu ...
- shutil模块,为什么说它是os模块的兄弟模块?
本文大纲 os模块是Python标准库中一个重要的模块,里面提供了对目录和文件的一般常用操作.而Python另外一个标准库--shutil模块,它作为os模块的补充,提供了复制.移动.删除.压缩.解压 ...
- Python第二十天 shutil 模块 zipfile tarfile 模块
Python第二十天 shutil 模块 zipfile tarfile 模块 os文件的操作还应该包含移动 复制 打包 压缩 解压等操作,这些os模块都没有提供 shutil 模块 shu ...
- 随机模块random、os模块、sys模块、shutil模块
随机模块random 随机模块的用法 >>> random.randrange(1,10) #返回1-10之间的一个随机数,不包括10 >>> random.ran ...
最新文章
- Linux进程控制——exec函数族
- TCP/IP学习笔记(一)分层模型概述
- 借助Java 8和lambdas,可以一起使用AssertJ和Awaitility
- dsp课程设计c语言源码,DSP课程设计-基于C语言实现256点的FFT精选.pdf
- maven没有resource文件夹_maven项目中没有resource文件夹的问题
- 1.13编程基础之综合应用_30_1的个数
- 电子元器件检测与维修从入门到精通视频教程
- 你不知道的二手车分期购车背后的套路
- java希腊字母表怎么打印_java 命令行窗口输出希腊字母表
- 离开一线三年后,码农们都过上好的生活了吗
- pr电子相册制作思路及常用快捷键
- 原生js实现轮播图效果
- Word如何让不同页显示不同的页码,页眉
- Job-shop和Flow-shop区别
- 如何用python制作动画的软件_用Python制作动画
- 计算机打开共享网络连接打印机共享打印机,两台电脑如何共享打印机 多台电脑共享一台打印机设置方法【详细教程】...
- 快衰落、慢衰落,平坦衰落、频率选择性衰落
- linux安装及启动nsq流程
- centos 安装 redis
- 我学MSA 之:线性分析(回归法)