zoukankan      html  css  js  c++  java
  • Python 基础

    shutil模块


    高级文件操作,包括copying, setting permissions, archive 等。 

    常用操作


    复制文件 copying files 

    copyfileobj() 和 copyfile(): copyfileobj中打开文件,文件的读写要以bytes形式,“wb” or "rb"

    importshutil
    f1=open("note_shutil.txt","rb")
    f2=open("note_test","wb")
    shutil.copyfileobj(f1,f2) 
    # copyfileobj 需要打开文件
    
    shutil.copyfile("note_shutil.txt","shutilM2")
    #不用打开文件,直接用文件名copy就可以
    copyfileobj 和 copyfile
    from shutil import *
    from glob import glob
    
    print("BEFORE:", glob("shutil_copyfile.*"))
    copyfile("shutil_copyfile.py", "shutil_copyfile.py.copy")
    print("AFTER", glob("shutil_copyfile.*"))
    另一个copyfile的例子

    copy(): 文件和权限都拷贝。 将文件复制到一个文件夹里; 文件的permission也一同复制; 但是修改和打开的时间并没有复制, copy2()就可以做到这点

    os.mkdir("example")  # 在同目录创建 example 文件夹
    print("BEFORE: ", os.listdir("example"))
    copy("shutil_copyfile.py.copy", "example")
    print("AFTER:", os.listdir("example"))
    copy()

    复制文件许可 copying file meta-data

    copymode(): 仅拷贝权限。内容、组、用户均不变

    copystat():不拷贝文件内容,拷贝状态的所有属性,包括:mode bits, atime, mtime, flags

    文档目录 working with dictionary tree

    copytree(): 递归地拷贝文件

    shutil.copytree("example", "new_example")
    shutil.rmtree("new_example")
    shutil.move()

    压缩 Archive

    创建压缩包并返回文件路径,例如:zip、tar

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

    shutil 对压缩包的处理是调用 Zipfile 和 Tarfile 模块来进行。 

    import zipfile
    
    # 压缩
    z = zipfile.ZipFile('laxi.zip', 'w')
    z.write('a.log')
    z.write('data.data')
    z.close()
    
    # 解压
    z = zipfile.ZipFile('laxi.zip', 'r')
    z.extractall()
    z.close()
    
    zipfile 压缩解压
    zipfile
    import tarfile
    
    # 压缩
    tar = tarfile.open('your.tar','w')
    tar.add('/Users/wupeiqi/PycharmProjects/bbs2.zip', arcname='bbs2.zip')
    tar.add('/Users/wupeiqi/PycharmProjects/cmdb.zip', arcname='cmdb.zip')
    tar.close()
    
    # 解压
    tar = tarfile.open('your.tar','r')
    tar.extractall()  # 可设置解压地址
    tar.close()
    
    tarfile 压缩解压
    Tarfile
  • 相关阅读:
    Windows 8实例教程系列 开篇
    qt 开发发布于 windeploy.exe
    qt qoci 测试验证
    vmware vmx 版本不兼容
    qt oracle
    vc qt dll
    QOCIDriver unable to create environment
    qoci 编译完 放置位置 具体根据情况
    calling 'lastError' with incomplete return type 'QSqlError' qsqlquer
    Hbase 操作工具类
  • 原文地址:https://www.cnblogs.com/lg100lg100/p/7403689.html
Copyright © 2011-2022 走看看