python之shutil模块的使用
shutil模块
shutil模块是一种高级的文件操作工具,其对文件的复制与删除操作非常强大,shutil 名字来源于 shell utilities,该模块拥有许多文件(夹)操作的功能,包括复制、移动、重命名、删除、压缩,解压等等;
常用功能:
shutil.copy():实现文件复制功能,返回值是复制成功后的字符串格式的文件路径;
shutil.copy2():在copy上的基础上吧复制文件最后访问时间与修改时间也复制过来;
shutil.copyfileobj(fsrc, fdst[, length]):将文件内容拷贝到另一个文件中 shutil.copyfileobj(
open
(
'a.txt'
,
'r'
),
open
(
'b.txt'
,
'w'
))
- >>> shutil.copy('E:\\python\\a.txt','E:\\win10') #如果后面跟目录,直接在目录下创建一个新的文件,与源文件同名。
- 'E:\\win10\\a.txt'
- >>> shutil.copy('E:/python/a.txt','E:/win10/a_1.txt')#如果跟上文件名,等同于复制过来之后给文件重命名。
- 'E:/win10/a_1.txt'
shutil.copytree():复制整个文件夹,里面的文件、子文件夹都会被复制过去,可做备份,
- >>> shutil.copytree('E:\\file','E:\\file_1')#此时file_1文件并不存在,如有此文件则会报错:(FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。: 'E:\\file_1')
- 'E:\\file_1'
- >>> shutil.copytree('E:\\file','E:\\file_1',
ignore
=
shutil.ignore_patterns(
'*.pyc'
,
'tmp*'
)
)#压缩时忽略某些文件
shutil.move(): 移动文件或文件夹,返回值是移动后文件的绝对路径字符串
- >>> shutil.move('E:\\file\\file2.txt','E:\\file_1')#文件移动到其他目录上,如果该目录下存在同名文件将会被重写。
- 'E:\\file_1\\file2.txt'
- >>> shutil.move('E:\\file\\file2.txt','E:\\file_1\\file_2.txt')#文件移动加重命名。
- 'E:\\file_1\\file_2.txt'
- >>> shutil.move('E:\\file\\file2.txt','E:\\file_1\\file')
- 'E:\\file_1\\file'
- >>> shutil.move('E:\\file\\file1','E:\\file_2\\')#file1文件夹下的文件移动到file_2文件夹下
- 'E:\\file_2\\'
shutil.rmtree(path):删除文件,(谨慎使用)
shutil.get_archive_formats():返回支持的格式列表;
- >>> shutil.get_archive_formats()
- [('bztar', "bzip2'ed tar-file"), ('gztar', "gzip'ed tar-file"), ('tar', 'uncompressed tar file'), ('xztar', "xz'ed tar-file"), ('zip', 'ZIP file')]
shutil.make_archive(base_name,
format
, root_dir
=
None
, base_dir
=
None
, verbose
=
0
,
dry_run
=
0
, owner
=
None
, group
=
None
, logger
=
None
):文件压缩
----base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径
----format(zip): 压缩包种类,“zip”, “tar”, “bztar”,“gztar”
----root_dir 要压缩的文件夹路径(默认当前目录)
----owner:用户,默认当前用户group 组,默认当前组
----logger用于记录日志,通常是logging.Logger对象
- >>> shutil.make_archive('E:\\file_2\\name','gztar','E:\\file_1')#将file_1目录下的文件以gztar格式压缩放在file_2目录下,名字为name
- 'E:\\file_2\\name.tar.gz'
shutil.unpack_archive(filename[, extract_dir[,
format
]])
:解压
filename :归档文件的全路径
extract_dir :解压归档的目标目录名称,如果没有提供,则取当前工作目录
format :归档格式:'zip', 'tar' 或 'gztar'中的一种。或者是通过register_unpack_format()注册时的其他格式,如果未提供则会根据归档文件的扩展名去查找相应的解压器,如果没找到则会引发ValueError。
shutil对压缩包的处理,通过调用zipfile 和tarfile两个模块,zipfile是python里用来做zip格式编码的压缩和解压缩的,最重要两个class----ZipFile和ZipInfo。tarfile模块用于读写tar归档文件,它也可以同时实现压缩功能。与zipfile模块相比,tarfile模块 可以直接将一个目录进行归档并压缩。
python之shutil模块的使用的更多相关文章
- python之shutil模块详解
shutil模块 -- --High-level file operations 高级的文件操作模块. os模块提供了对目录或者文件的新建/删除/查看文件属性,还提供了对文件以及目录的路径操作.比如 ...
- python基础--shutil模块
shutil模块提供了大量的文件的高级操作. 特别针对文件拷贝和删除,主要功能为目录和文件操作以及压缩操作.对单个文件的操作也可参见os模块. 注意 即便是更高级别的文件复制函数(shutil.cop ...
- python的shutil模块
shutil模块提供了大量的文件的高级操作.特别针对文件拷贝和删除,主要功能为目录和文件操作以及压缩操作 1.复制文件 def copy(src, dst): """Co ...
- python的shutil模块-文件的移动、复制、打包、压缩、解压等
参考https://www.cnblogs.com/xiangsikai/p/7787101.html os模块提供了对目录或者文件的新建.删除.查看文件属性,还提供了对文件以及目录的路径操作,比如说 ...
- python学习shutil模块的文件压缩和解压用法
shutil模块可以创建压缩包并返回文件路径,例如 zip,tar,下面详细其用法 base_name 压缩包的文件名,也可以是压缩包的路径,只是文件名时,则保存至当前目录,否则保存指定路径 data ...
- python(6)-shutil模块
高级的 文件.文件夹.压缩包 处理模块 shutil.copyfileobj(fsrc, fdst[, length]) 将文件内容拷贝到另一个文件中: #源码 def copyfileobj(fsr ...
- Python之shutil模块(复制移动文件)
用python实现将某代码文件复制/移动到指定路径下.场景例如:mv ./xxx/git/project1/test.sh ./xxx/tmp/tmp/1/test.sh (相对路径./xxx/tmp ...
- python中shutil模块的使用
可以操作权限的处理文件模块:shutil # 基于路径的文件复制 import shutil shutil.copyfile("oldfile_path","newfil ...
- python中shutil模块
shutil是对OS中文件操作的补充:移动.复制.打包.压缩.解压. 1.copy文件内容到另一个文件,可以copy指定大小的内容. shutil.copyfileobj(fsrc, fdst[, l ...
随机推荐
- Java实现蓝桥杯VIP 算法训练 P0502
试题 算法训练 P0502 资源限制 时间限制:1.0s 内存限制:256.0MB 编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20.然后 ...
- 【Spring注解开发】组件注册-使用@Configuration和@Bean给容器中注册组件
写在前面 在之前的Spring版本中,我们只能通过写XML配置文件来定义我们的Bean,XML配置不仅繁琐,而且很容易出错,稍有不慎就会导致编写的应用程序各种报错,排查半天,发现是XML文件配置不对! ...
- vector常用方法
1.find使用 不同于map(map有find方法),vector本身是没有find这一方法,其find是依靠algorithm来实现的. #include <iostream>#inc ...
- synchronized 和 java.util.concurrent.locks.Lock 的异同 ?
主要相同点:Lock 能完成 synchronized 所实现的所有功能 主要不同点:Lock 有比synchronized 更精确的线程语义和更好的性能. synchronized 会自动释放锁,而 ...
- abp-CMS模块-广告
无论是开发app还是网站,可能都需要一个广告功能,比如我们常见的在首页有个轮播广告,里面会轮播显示多个图片.还有比如一个新闻门户网站 很常见的 banner横幅广告,还有js特效广告等.本篇说说在ab ...
- MATLAB作图之一
问题 在使用MATLAB当中的imagesc作图的时候,如果数据矩阵元素太少,得到的图看起来会很"粗糙"(图1).那么如何得到更为"圆润"的图像呢? A = r ...
- Spark原始码系列(六)Shuffle的过程解析
问题导读: 1.shuffle过程的划分? 2.shuffle的中间结果如何存储? 3.shuffle的数据如何拉取过来? Shuffle过程的划分 Spark的操作模型是基于RDD的,当调用RD ...
- 【JMeter_13】JMeter逻辑控制器__执行时间控制器<Runtime Controller>
执行时间控制器<Runtime Controller> 业务逻辑: 根据输入的Runtime的值,对当前节点下的执行时长进行控制,当执行时长超过限定时长后,执行完当前正在执行的取样器后,跳 ...
- cc21a -c++重载成员操作符*,->,代码示范
cc21a重载成员操作符*,->, *,解引用操作符 ->箭头操作符,用于智能指针类 #include "pointer.h" //pointer.cpp #inclu ...
- 关于 JOIN 耐心总结,学不会你打我系列
现在随着各种数据库框架的盛行,在提高效率的同时也让我们忽略了很多底层的连接过程,这篇文章是对 SQL 连接过程梳理,并涉及到了现在常用的 SQL 标准. 其实标准就是在不同的时间,制定的一些写法或规范 ...