• shutil模块


    shutil

    高级的文件、文件夹、压缩包处理模块

    copyfileobj(fsrc, fdst[, length])

    将文件内容拷贝到另一个文件

    >> shutil.copyfileobj(open('test2.log', 'r'), open('test3.log', 'w'))

    copyfile(src, dst)

    拷贝文件

    >> shutil.copyfile('test3.log', 'test4.log')

    copymode(src, dst)

    拷贝权限,读写执行。 内容、组、用户不变

    >> shutil.copymode('test4.log', 'test3.log')

    copystat(src, dst)

    贝状态信息,atimemtimeflagsmode bits

    >> shutil.copystat('test4.log', 'test3.log')

    copy(src, dst)

    贝文件和权限

    >> shutil.copy('test4.log', 'test5.log')

    copy(src, dst)

    贝文件和状态信息

    >> shutil.copy2('test5.log', 'test6.log')

    shutil.ignore_patterns(*patterns)

    shutil.copytree(src, dst, symlinks=False, ignore=None)

    递归拷贝文件夹

    shutil.copytree('test', 'test2', symlinks=False, ignore=shutil.ignore_patterns('*.pyc', 'tmp*'))

    move(src, dst)

    shutil.rmtree(path)

    递归的去删除文件

    shutil.make_archive(base_name, format...)

    创建压缩包并返回文件路径

    • base_name 压缩的文件名,也可以是压缩包路径。只是文件名时,则保存至当前目录,否则保存至指定目录。

    • Format 压缩包种类, ziptarbztargztar

    • root_dir 要压缩的文件夹路径

    • owner 用户,默认当前用户

    • group 组,默认当前组

    • logger 记录日志,通常是logging.Logger对象

    test目录压缩为test.tar.gz,保存至当前目录。

    >> shutil.make_archive('test', 'gztar', root_dir='/tmp/test')

    >> '/tmp/test.tar.gz'

    test目录压缩为test.tar.gz,保存至当前/root目录。

    >> shutil.make_archive('/root/test', 'gztar', root_dir='/tmp/test')

    >> '/tmp/test.tar.gz'

    zipfile

    z = zipfile.ZipFile('test.zip', 'w')

    z.write('re1.py')

    z.close()

    z = zipfile.ZipFile('test.zip', 'r')

    # z.extractall() # 提取所有文件

    z.extract('re1.py') # 提取单个文件

    查看压缩包里内容

    nlist = z.namelist() # 压缩包成员列表

    print(nlist)

    tarfile

    压缩

    tar = tarfile.open('test2.tar', 'w')

    tar.add('re1.py', arcname='re.py')

    tar.add('oss.py', arcname='myoss.py')

    tar.close()

    解压

    tar = tarfile.open('test2.tar', 'r')

    # nlist = tar.getmembers()

    obj = tar.getmember('re.py')

    tar.extract(obj)

    print(obj)

  • 相关阅读:
    Java 泛型,你了解类型擦除吗?
    终于有人把 Nginx 说清楚了,图文详解!
    给你一份超详细 Spring Boot 知识清单
    Java 中的 SPI 机制是什么鬼?
    用 Git 和 Github 提高效率的 10 个技巧!
    聊聊微服务架构及分布式事务解决方案!
    python多线程同步机制Lock
    python多线程同步机制Semaphore
    mysql 慢查询时间
    mysql row模式查看原始sql
  • 原文地址:https://www.cnblogs.com/xiaoming279/p/6372946.html
Copyright © 2020-2023  润新知