文件、文件夹、压缩包、处理模块shutil

文件处理

copyfileobj()模块函数

功能:将a文件的内容,复制到b文件中【有参】

使用方法:模块名称.copyfileobj(poen("打开a文件"), poen("打开b文件"), [length=宽度])

格式如:shutil.copyfileobj(open("des","r",encoding='utf-8'), open("des2","w",encoding='utf-8'))

#!/usr/bin/env python
# -*- coding:utf8 -*-
import shutil
shutil.copyfileobj(open("des","r",encoding='utf-8'), open("des2","w",encoding='utf-8')) #将a文件的内容,复制到b文件中

copyfile()模块函数

功能:将a文件拷贝成一份b文件,将拷贝a文件的所有信息【有参】

使用方法:模块名称.copyfile("a文件路径名称","b文件路径名称")

格式如:shutil.copyfile("des2","des3")

#!/usr/bin/env python
# -*- coding:utf8 -*-
import shutil
shutil.copyfile("des2","des3") #将a文件拷贝成一份b文件

copymode()模块函数

功能:将a文件信息拷贝到b文件,仅拷贝权限(内容、组、用户均不变)【有参】

使用方法:模块名称.copymode("a文件路径名称","b文件路径名称")

格式如:shutil.copymode("des","des2")

#!/usr/bin/env python
# -*- coding:utf8 -*-
import shutil
shutil.copymode("des","des2") #将a文件信息拷贝到b文件,仅拷贝权限(内容、组、用户均不变)

copystat()模块函数

功能:将a文件信息拷贝到b文件,包括:mode bits, atime, mtime, flags,(内容不变)【有参】

使用方法:模块名称.copystat("a文件路径名称","b文件路径名称")

格式如:shutil.copystat("des","des2")

#!/usr/bin/env python
# -*- coding:utf8 -*-
import shutil
shutil.copystat("des","des2") #将a文件信息拷贝到b文件,仅拷贝权限(内容、组、用户均不变)

copy()模块函数

功能:将a文件内容和权限拷贝到b文件,b文件如果不存在则创建【有参】

使用方法:模块名称.copy("a文件路径名称","b文件路径名称")

格式如:shutil.copy("des","des2")

#!/usr/bin/env python
# -*- coding:utf8 -*-
import shutil
shutil.copy("des","des2") #将a文件内容和权限拷贝到b文件,b文件如果不存在则创建

copy2()模块函数

功能:将a文件内容和状态信息拷贝到b文件,b文件如果不存在则创建【有参】

使用方法:模块名称.copy2("a文件路径名称","b文件路径名称")

格式如:shutil.copy2("des","des2")

#!/usr/bin/env python
# -*- coding:utf8 -*-
import shutil
shutil.copy2("des","des2") #将a文件内容和状态信息拷贝到b文件,b文件如果不存在则创建

文件夹处理

ignore_patterns()模块函数

功能:忽略文件指定的文件,一般都是配合其他使用【有参】

使用方法:模块名称.ignore_patterns("要忽略的文件","多个文件用,号隔开")    

格式如:shutil.ignore_patterns("des")

copytree()模块函数

功能:递归的去拷贝文件夹包括内容,将a文件夹拷贝成一份b文件夹,如果b文件夹存在报错,[可选:1如果里面有快捷方式是拷贝快捷方式,还是原文件、2是否忽略里面的指定文件不拷贝]【有参】

使用方法:模块名称.copytree("a文件夹路径名称","b文件夹路径名称",symlinks=是否拷贝快捷方式,ignore=需要忽略的文件)

格式如:shutil.copytree("2","3",symlinks=False,ignore=shutil.ignore_patterns('*.py'))

#!/usr/bin/env python
# -*- coding:utf8 -*-
import shutil
shutil.copytree("","",symlinks=False,ignore=shutil.ignore_patterns('*.py')) #递归的去拷贝文件夹包括内容,将a文件夹拷贝成一份b文件夹,如果b文件夹存在报错,[可选:1如果里面有快捷方式是拷贝快捷方式,还是原文件、2是否忽略里面的指定文件不拷贝]

rmtree()模块函数

功能:递归的去删除文件夹,删除文件夹包括内容,只能删除文件夹【有参】

使用方法:模块名称.rmtree("要删除的文件夹路径名称")

格式如:shutil.rmtree("3")

#!/usr/bin/env python
# -*- coding:utf8 -*-
import shutil
shutil.rmtree("") #递归的去删除文件夹,删除文件夹包括内容,只能删除文件夹

shutil.move()模块函数

功能:文件夹重命名【有参】

使用方法:模块名称.shutil.move("要重命名文件夹路径名称","要命名的名称")

格式如:shutil.move("2","3")

#!/usr/bin/env python
# -*- coding:utf8 -*-
import shutil
shutil.move("","") #文件夹重命名

压缩文件处理

make_archive()模块函数

功能:将一个指定文件夹,压缩成指定格式的压缩包,保存到指定路径【有参】

使用方法:模块名称.make_archive("要保存的路径加压缩包名称","压缩格式",root_dir="要压缩的路径加目录名称")

格式如:shutil.make_archive("H:\py/123","zip",root_dir="H:\py/3")

make_archive(base_name, format,...)

base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径,【必选】
如:www =>保存至当前路径
如:/Users/wupeiqi/www =>保存至/Users/wupeiqi/
format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar” 【必选】
root_dir: 要压缩的文件夹路径(默认当前目录)【必选】
owner: 用户,默认当前用户【可选】
group: 组,默认当前组【可选】
logger: 用于记录日志,通常是logging.Logger对象【可选】

#!/usr/bin/env python
# -*- coding:utf8 -*-
import shutil
shutil.make_archive("H:\py/123","zip",root_dir="H:\py/3",) #将一个指定文件夹,压缩成指定格式的压缩包,保存到指定路径

shutil 对压缩包的处理是调用 ZipFile 和 TarFile 两个模块来进行的

ZipFile模块

ZipFile()模块函数

功能:打开zip压缩包文件【有参】

使用方法:模块名称.ZipFile("要打开的压缩包路径名称","打开模式")

格式如:zipfile.ZipFile("H:\py/789.zip","w")

r,只读模式
w,只写模式【不可读;不存在则创建;存在则清空内容;】
x, 只写模式【不可读;不存在则创建,存在则报错】
a, 追加模式【不可读; 不存在则创建;存在则只追加内容;】

更多参照,第二十六节,内置函数,文件操作哪里

write()模块函数

功能:将指定文件添加写入指定的zip压缩包【有参】

使用方法:打开zip压缩包变量.write("要写入压缩包文件的路径名称")

格式如:a.write("H:\py/2.txt")

close()模块函数

功能:关闭打开的zip压缩包【无参】

使用方法:打开zip压缩包变量.close()

格式如:a.close()

#!/usr/bin/env python
# -*- coding:utf8 -*-
import zipfile
a = zipfile.ZipFile("H:\py/789.zip","w") #打开指定的zip文件,以w模式打开,如果文件不存在则创建
a.write("H:\py/2.txt") #将指定的文件,写入添加到压缩包
a.write("H:\py/des") #将指定的文件,写入添加到压缩包
a.close() #关闭打开的文件

extractall()模块函数

功能:解压指定zip压缩包里的所有文件,到指定路径【有参】

使用方法:打开zip压缩包变量.extractall(["解压保存路径"])

格式如:a.extractall()

#!/usr/bin/env python
# -*- coding:utf8 -*-
import zipfile
a = zipfile.ZipFile("H:\py/789.zip","r") #打开指定的zip文件,以r模式打开,如果文件不存在则创建
a.extractall() #解压指定zip压缩包里的所有文件【无参】
a.close() #关闭打开的文件

namelist()模块函数

功能:查看指定zip压缩包里的文件,返回列表,列表里的元素是文件路径加名称【无参】

使用方法:打开zip压缩包变量.namelist()

格式如:b = a.namelist()

#!/usr/bin/env python
# -*- coding:utf8 -*-
import zipfile
a = zipfile.ZipFile("H:\py/789.zip","r") #打开指定的zip文件,以r模式打开,如果文件不存在则创建
b = a.namelist() #查看指定zip压缩包里的文件,返回列表,列表里的元素是文件路径加名称
print(b)
a.close() #关闭打开的文件
# 输出
# ['py/2.txt', 'py/des']

extract()模块函数

功能:解压指定zip压缩包里的指定文件【有参】

使用方法:打开zip压缩包变量.extract("压缩包里的文件路径名称",path="要解压到的路径")

格式如:a.extract("py/des",path="H:\py2")

#!/usr/bin/env python
# -*- coding:utf8 -*-
import zipfile
a = zipfile.ZipFile("H:\py/789.zip","r") #打开指定的zip文件,以r模式打开,如果文件不存在则创建
# b = a.namelist()#查看指定zip压缩包里的文件,返回列表,列表里的元素是文件路径加名称
# print(b)
a.extract("py/des",path="H:\py2") #解压指定zip压缩包里的指定文件【有参】
a.close() #关闭打开的文件

TarFile模块

open()模块函数

功能:打开tar文件,如果以w模式打开,如果文件不存在则创建【有参】

使用方法:模块名称.open("要打开的tar文件路径名称","打开模式")

格式如:tarfile.open("H:\py/9.tar","w")

add()模块函数

功能:将指定目录或文件,添加到tar压缩包,并把添加进去的文件更改成指定的名称【有参】

使用方法:打开tar文件变量.add("要添加到压缩包的文件路径名称",[arcname="添加到压缩包后更改的名称"])

格式如:a.add("H:\py2\py\des",arcname="lib2")

close()模块函数

功能:关闭打开的tar文件

使用方法:打开tar文件变量.close()

格式如:a.close()

#!/usr/bin/env python
# -*- coding:utf8 -*-
import tarfile
a = tarfile.open("H:\py/9.tar","w") #写入模式打开9.tar文件,如果文件不存在则创建
a.add("H:\py2\py\des",arcname="lib2") #将指定目录或文件,添加到tar压缩包,并把添加进去的文件更改成指定的名称
a.close() #关闭打开的tar文件

extractall()模块函数

功能:解压指定tar压缩包里的所有文件,到指定路径【有参】

使用方法:打开tar压缩包变量.extractall(["解压保存路径"])

格式如:a.extractall("H:\py")

#!/usr/bin/env python
# -*- coding:utf8 -*-
import tarfile
a = tarfile.open("H:\py/9.tar","r") #以r模式打开tar文件
a.extractall("H:\py") #解压指定tar压缩包里的所有文件,到指定路径【有参】
a.close() #关闭打开的tar文件

getmembers()模块函数

功能:查看指定tar压缩包里的文件,返回列表,列表里的元素是文件路径加名称【无参】

使用方法:打开tar压缩包变量.getmembers()

格式如:b = a.getmembers()

#!/usr/bin/env python
# -*- coding:utf8 -*-
import tarfile
a = tarfile.open("H:\py/9.tar","r") #以r模式打开tar文件
b = a.getmembers() #查看指定tar压缩包里的文件,返回列表,列表里的元素是文件路径加名称【无参】
for i in b:
print(i)
a.close() #关闭打开的tar文件
# 输出
# <TarInfo 'py2/py' at 0x78f5462d90>
# <TarInfo 'py2/py/2.txt' at 0x78f5462f20>
# <TarInfo 'py2/py/3.html' at 0x78f554b048>
# <TarInfo 'py2/py/des' at 0x78f554b110>
# <TarInfo 'py2/py/ini' at 0x78f554b1d8>

extract()模块函数

功能:解压指定tar压缩包里的指定文件【有参】

使用方法:打开tar压缩包变量.extract("压缩包里的文件路径名称",path="要解压到的路径")

格式如:a.extract("py2/py/des",path="H:\py")

#!/usr/bin/env python
# -*- coding:utf8 -*-
import tarfile
a = tarfile.open("H:\py/9.tar","r") #以r模式打开tar文件
a.extract("py2/py/des",path="H:\py") #解压指定tar压缩包里的指定文件【有参】
a.close() #关闭打开的tar文件

第四十三节,文件、文件夹、压缩包、处理模块shutil的更多相关文章

  1. 风炫安全web安全学习第三十三节课 文件包含漏洞基础以及利用伪协议进行攻击

    风炫安全web安全学习第三十三节课 文件包含漏洞基础以及利用伪协议进行攻击 文件包含漏洞 参考文章:https://chybeta.github.io/2017/10/08/php文件包含漏洞/ 分类 ...

  2. 第三百二十三节,web爬虫,scrapy模块以及相关依赖模块安装

    第三百二十三节,web爬虫,scrapy模块以及相关依赖模块安装 当前环境python3.5 ,windows10系统 Linux系统安装 在线安装,会自动安装scrapy模块以及相关依赖模块 pip ...

  3. 【php增删改查实例】第二十三节 - PHP文件上传

    22. PHP文件上传 22.1 资源文件 将这三个东西拷贝项目的根目录. 拷贝完毕后,打开upload.html: 现在,我们在项目的根目录去编写一个upload.php. PHP给我们提供了很多关 ...

  4. 从零开始学安全(四十)●上传文件MIME类型绕过漏洞防御

    MIME检测原理 服务端MIME类型检测是通过检查http包的Content-Type字段中的值来判断上传文件是否合法的. php示例代码: if($_FILES['userfile']['type' ...

  5. 第四十节,requests模拟浏览器请求模块初识

    requests模拟浏览器请求模块初识  requests模拟浏览器请求模块属于第三方模块 源码下载地址http://docs.python-requests.org/zh_CN/latest/use ...

  6. Python--文件、文件夹、压缩包、处理模块shutil

    高级的 文件.文件夹.压缩包 处理模块 shutil.copyfileobj(fsrc, fdst[, length])将文件内容拷贝到另一个文件中 1 import shutil 2 3 shuti ...

  7. shutil模块(高级的文件、文件夹、压缩包处理模块)

    shutil 模块 高级的 文件.文件夹.压缩包 处理模块 shutil.copyfileobj(fsrc, fdst[, length])将文件内容拷贝到另一个文件中 import shutil s ...

  8. shutil——高级的 文件、文件夹、压缩包 处理模块

    高级的 文件.文件夹.压缩包 处理模块 shutil.copyfileobj(fsrc, fdst[, length])复制文件内容(不包含元数据)从类文件对象src到类文件对dst.可选参数leng ...

  9. Python(文件、文件夹压缩处理模块,shelve持久化模块,xml处理模块、ConfigParser文档配置模块、hashlib加密模块,subprocess系统交互模块 log模块)

    OS模块 提供对操作系统进行调用的接口 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname")  改变当前脚本工作目 ...

随机推荐

  1. jQuery EasyUI的使用入门

    jQuery EasyUI不是什么太高级的东西,就是用jQuery写了很多方法.定义了很多属性,通过调用这些方法.属性,可以达到一些特定的效果,然后我们再根据具体需求微调就好了.至少需要导入两个样式表 ...

  2. CentOS 下网络报错 Device eth0 does not seem to be present

    在执行network服务重启后,出现Device eth0 does not seem to be present  问题,主要是因为系统之前有多个网卡配置,和配置文件不匹配造成的. 解决这种问题,思 ...

  3. C-Free 5.0编译失败问题解决办法

    解决关于C-Free 5.0编译时提示错误:[Error] undefined reference to `__dyn_tls_init_callback' 解决办法: 因为错误提示的路径是C:\Mi ...

  4. Maven 复制jar到指定目录

    在完成模块开发后,需要发布jar到nexus上,与此同时,则要部署开发的模块,需要将编译打包的jar复制到指定的路径,再进行部署,而不是手动的去复制那些jar,因为当模块多的话,则会感到特别的烦,所以 ...

  5. ZOJ 2710 Two Pipelines

    计算几何+贪心 #include<cstdio> #include<cstring> #include<cmath> #include<algorithm&g ...

  6. CSU 1639 队长,我想进集训队!

    水题 #include<cstdio> int main() { int x1, x2, x3, u, h; int n; while (~scanf("%d", &a ...

  7. hdu1008

    //c++// #includeusing namespace std;int main(){int n,j,t,start;while (cin >> n,n){start =0;t = ...

  8. 配置IIS提示打开目录浏览时的问题:未能从程序集“System.ServiceModel, Version=3.0.0.0”中加载类型“System.ServiceModel.Activation.HttpModule” 的解决办法

    错误消息: 未能从程序集“System.ServiceModel, Version=3.0.0.0”中加载类型“System.ServiceModel.Activation.HttpModule” 的 ...

  9. C#使用IHttpModule接口修改http输出的方法浅谈

    一.但你每次请求浏览一个页面,比如Login.aspx的时候,都会执行配置文件中system.webserver内的model这个节点的东西(这个是属于遍历的逻辑执行,会将model这个节点的东西全部 ...

  10. 实时计算storm流程架构总结

    hadoop一般用在离线的分析计算中,而storm区别于hadoop,用在实时的流式计算中,被广泛用来进行实时日志处理.实时统计.实时风控等场景,当然也可以用在对数据进行实时初步的加工,存储到分布式数 ...