zoukankan      html  css  js  c++  java
  • 第四十三节,文件、文件夹、压缩包、处理模块shutil

    文件、文件夹、压缩包、处理模块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("2","3",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("3") #递归的去删除文件夹,删除文件夹包括内容,只能删除文件夹

    shutil.move()模块函数

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

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

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

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

    压缩文件处理

    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:py2pydes",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:py2pydes",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文件
  • 相关阅读:
    [Java基础] 深入jar包:从jar包中读取资源文件
    [Git] git merge和rebase的区别
    windows和linux中换行符的转换
    使用 scikit-learn 实现多类别及多标签分类算法
    python 特征缺失值填充
    多输出回归问题
    python DataFrame获取行数、列数、索引及第几行第几列的值
    Xgboost 模型保存和载入()
    pandas所占内存释放
    SSE,MSE,RMSE,R-square 指标讲解
  • 原文地址:https://www.cnblogs.com/adc8868/p/5835719.html
Copyright © 2011-2022 走看看