模块讲解----shutil模块(copy、压缩、解压)

作用与功能

主要用于文件的copy,压缩,解压

导入shuitl模块:

import shutil

copy方法

 1 1、shutil.copyfileobj()  打开file1,并copy写入file2:
 2 with open("笔记1",‘r‘,encoding=‘utf-8‘) as f1,open(‘笔记2‘,‘w‘,encoding=‘utf-8‘) as f2:
 3     shutil.copyfileobj(f1,f2)
 4
 5
 6
 7 #输入文件名就能直接拷贝(调用copyfileobj方法)
 8 shutil.copyfile("笔记1","笔记3")
 9
10
11
12 #拷贝权限,内容,组,用户均不变:(win看不出来,linux下可以尝试)
13 shutil.copymode("笔记1","笔记3")
14
15
16
17 #拷贝状态的信息(只拷贝权限,不创建文件),包括:mode bits,atime,mtime,flags
18 shutil.copystat("笔记1","笔记3")
19
20
21
22 #拷贝文件和权限:
23 shutil.copy("笔记1","笔记3")
24
25
26
27 #拷贝文件和状态信息:(文件和权限)
28 shutil.copy2("笔记1","笔记3")
29
30
31
32
33 #递归的去copy文件:(copy目录)
34 shutil.copytree(r"D:\a",r"D:\a1")
35 例如:用python脚本实现代码发布指定线上服务器,例如svn和git在发布的时候,有些文件是不需要进行拷贝的,因袭就需要进行过滤
36 方法如下:
37 shutil.copytree(‘f1‘, ‘f2‘, symlinks=True, ignore=shutil.ignore_patterns(‘*.pyc‘, ‘tmp*‘))
38
39
40
41 #递归的删除目录:(有链接占中目录,删除报错)
42 shutil.rmtree(r"D:\a1")
43
44
45
46 #移动文件:
47 shutil.move(r"D:\a",r"D:\a1")

压缩和解压缩方法

 1 1、全目压缩:
 2 #创建压缩包,并返回文件路径:例如:zip  tar
 3 #创建压缩包并返回文件路径,例如:zip、tar
 4 #格式:shutil.make_archive(base_name,format(zip),root_dir,owner,group,logger)
 5 # base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径,
 6 # 如:www                        =>保存至当前路径
 7 # 如:/Users/wupeiqi/www =>保存至/Users/wupeiqi/
 8 # format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar”
 9 # root_dir: 要压缩的文件夹路径(默认当前目录)
10 # owner: 用户,默认当前用户
11 # group: 组,默认当前组
12 # logger: 用于记录日志,通常是logging.Logger对象
13 #将 /Users/wupeiqi/Downloads/test 下的文件打包放置当前程序目录
14
15 import shutil
16 ret = shutil.make_archive("wwwwwwwwww", ‘gztar‘, root_dir=‘/Users/wupeiqi/Downloads/test‘)
17 ?
18 #将 /Users/wupeiqi/Downloads/test 下的文件打包放置 /Users/wupeiqi/目录
19 import shutil
20 ret = shutil.make_archive("/Users/wupeiqi/wwwwwwwwww", ‘gztar‘, root_dir=‘/Users/wupeiqi/Downloads/test‘)
21 ?
22 #将D:\软件\pychar\data\s13\Atm目录下的文件打包放置在D:\软件\pychar\data\s13\Atm_name_tar文件下
23 shutil.make_archive(r"D:\软件\pychar\data\s13\Atm_name_tar","tar","D:\软件\pychar\data\s13\Atm")
24
25 ==========================================================================
26 三、解压方法和指定文件的压缩和解压:
27
28 2、Zip单个文件压缩与解压:(打包在压缩)
29 (压缩包也可以当做一个文件,想要加入压缩文件的话可以直接写进压缩包里)
30
31 2.1:#写入指定压缩文件(w)
32 z = zipfile.ZipFile(r‘D:\软件\pychar\data\test\node.zip‘, ‘w‘)
33 z.write(‘笔记1‘)
34 z.write(‘笔记3‘)
35 z.close()
36
37 2.2 #追加指定压缩(a)
38 z = zipfile.ZipFile(r‘D:\软件\pychar\data\test\node.zip‘, ‘a‘)
39 z.write(‘test.py‘)
40 z.write(‘md_sys_test.py‘)
41 z.close()
42
43
44 2.3:z.extractall()   解压所有文件:(所有文件)
45 os.chdir(r"D:\软件\pychar\data\test")
46 z = zipfile.ZipFile("node.zip",‘r‘)
47 z.extractall()  
48 z.close()
49
50
51 2.4:z.extract(‘test.py‘)  解压指定文件:
52 只需要传输字符串格式的文件名即可
53 os.chdir(r"D:\软件\pychar\data\test")
54 z = zipfile.ZipFile("node.zip",‘r‘)
55 for item in z.namelist():
56     if item == ‘test.py‘:
57         z.extract(‘test.py‘)
58 z.close()
59
60
61
62
63
64 =============================================================================================
65 3、tar单个文件压缩与解压:(tar只打包不压缩)
66 3.1、写入指定压缩文件(w)
67 import tarfile
68 ?
69 tar = tarfile.open(r‘D:\软件\pychar\data\test\your.tar‘,‘w‘)
70 tar.add(r‘D:\软件\pychar\data\test\test.py‘, arcname=‘bbs2.log‘)
71 tar.add(r‘D:\软件\pychar\data\test\md_sys_test.py‘, arcname=‘cmdb.log‘)
72 tar.close()
73
74 3.2、添加指定压缩文件(a)
75 tar = tarfile.open(r‘D:\软件\pychar\data\test\your.tar‘,‘a‘)
76 tar.add(r‘D:\软件\pychar\data\test\笔记1‘, arcname=‘node1.txt‘)
77 tar.add(r‘D:\软件\pychar\data\test\笔记3‘, arcname=‘node3.txt‘)
78 tar.close()
79
80
81 3.3、解压所有文件
82 os.chdir(r"D:\软件\pychar\data\test")
83 tar = tarfile.open(‘your.tar‘,‘r‘)
84 tar.extractall()  # 可设置解压地址
85 tar.close()
86
87 3.4、解压指定文件
88 tar.getmembers():遍币所有压缩包内的文件对象(非文件字符串)
89 tar.getmember("node1.txt"):指定压缩包内的某个文件
90 os.chdir(r"D:\软件\pychar\data\test")
91 tar = tarfile.open(‘your.tar‘,‘r‘)
92 for item in tar.getmembers():
93     job = tar.getmember("node1.txt")
94     if item == job:
95         tar.extract(job)
96 tar.close()
时间: 2024-08-15 02:37:53

模块讲解----shutil模块(copy、压缩、解压)的相关文章

day5模块学习--shutil模块

shutil模块 高级的 文件.文件夹.压缩包 处理模块 os模块提供了对目录或者文件的新建/删除/查看文件属性,还提供了对文件以及目录的路径操作.比如说:绝对路径,父目录--  但是,os文件的操作还应该包含移动 复制  打包 压缩 解压等操作,这些os模块都没有提供. 而本文所讲的shutil则就是对os中文件操作的补充.--移动 复制  打包 压缩 解压.     1.shutil.copyfileobj(fsrc, fdst[, length]) import shutil f1 = o

python之模块之shutil模块

shutil -- --High-level file operations  高级的文件操作模块. os模块提供了对目录或者文件的新建/删除/查看文件属性,还提供了对文件以及目录的路径操作.比如说:绝对路径,父目录……  但是,os文件的操作还应该包含移动 复制  打包 压缩 解压等操作,这些os模块都没有提供. 而本章所讲的shutil则就是对os中文件操作的补充.--移动 复制  打包 压缩 解压, shutil功能: 1  shutil.copyfileobj(fsrc, fdst[,

python下通过os模块和shutil模块进行文件处理方式

python下通过os模块和shutil模块进行文件处理方式 得到当前工作目录路径:os.getcwd() 获取指定目录下的所有文件和目录名:os.listdir(dir) 删除文件:os.remove(file) 删除多个目录:os.removedirs(r"/home") 检测路径是否为文件:os.path.isfile(path) 检测路径是否为目录:os.path.isdir(path) 判断是否为绝对路径:os.path.isabs(path) 检测路径是否存在:os.pat

python中对文件、文件夹的操作需要涉及到os模块和shutil模块。

创建文件:1) os.mknod("test.txt") 创建空文件2) open("test.txt",w) 直接打开一个文件,如果文件不存在则创建文件 创建目录:os.mkdir("file") 创建目录 创建多层新目录:def mkdirs(path): # 去除首位空格 path=path.strip() # 去除尾部 \ 符号 path=path.rstrip("\\") # 判断路径是否存在 # 存在 True #

C# 文件流压缩解压

/// <summary> /// 文件流压缩解压 /// </summary> public class ZipHelper { public static int BEST_COMPRESSION = 9; public static int BEST_SPEED = 1; public static int DEFAULT_COMPRESSION = -1; public static int NO_COMPRESSION = 0; #region Deflate压缩 #re

压缩解压打包工具基础

目录 前言 compress压缩解压工具 gzip压缩解压工具 bzip2压缩解压工具 xz压缩解压工具 zip压缩打包工具 tar打包工具 split文件分割 cpio打包压缩 前言 无论是我们的个人笔记本台式机还是服务器,它们的存储设备可以存储的东西都是有限的,不可能无限的存储东西,除非我们不停地增加硬盘的数量,但是这又是非常不现实的,因为我们需要无限的空间,很多时候我们需要存储大量的不可删除的数据时,就会采用压缩的方式,这样我们就可以即剩下了很多空间同时又保存了我们的文件. 在我们的常用的

Linux基本命令—权限管理、文件搜索、帮助、压缩解压、网络通信

Linux基本命令-权限管理.文件搜索.帮助.压缩解压.网络通信 Linux 权限管理命令 文件搜索命令 帮助命令 压缩解压命令 网络通信指令 2017-11-12 权限管理命令 chmod 改变文件或目录权限: 格式:chmod [{ugo} {+-=} {rwx}] [文件或目录]:或 [mode=421] [文件或目录] -u:所有者: -g:所属组: -o:其他人 -rwx:可读可写可执行:对应权值 r-4.w-2.x-1,可按照数字改变权限:eg.rwxr-xr--表示754: eg.

Lniux常见的压缩/解压命令小结

转载请注明: 导航制导与控制实验室 2014年12月16日 在linux开发过程中,经常会遇资料的打包/解包.压缩/解压:本文我将在linux系统中常用的命令进行了整理和分类,内容如下: 1.tar 命令,主要是对Dir先归档,在借助其他命令处理归档文件: 2.单个文件的压缩命令,对单个文件进行处理的命令,有时也可以借助tar命令对目录先打包,再进行压缩: 3.zip.rar压缩命令,即可对单个文件也可对目录进行压缩处理,该方法利于不同操作系统的处理: 该文章只是作者本人的理解,有些命令还会验证

压缩&amp;&amp;解压命令汇总

以下是搜集的Linux系统下,压缩&&解压命令,以备参考使用. .tar 解包: tar xvf FileName.tar 打包:tar cvf FileName.tar DirName    tar cvf a.tar a.txt b.txt c.txt (注:tar是打包,不是压缩!) --------------------------------------------- .gz 解压1:gunzip FileName.gz 解压2:gzip -d FileName.gz 压缩:g