一图看懂 zipp 模块:ZipFile 的一些兼容子类和补充接口,资料整理+笔记(大全)

news2024/11/30 14:34:47

本文由 大侠(AhcaoZhu)原创,转载请声明。
链接: https://blog.csdn.net/Ahcao2008

Alt

一图看懂 zipp 模块:ZipFile 的一些兼容子类和补充接口,资料整理+笔记(大全)

  • 🧊摘要
  • 🧊模块图
  • 🧊类关系图
  • 🧊模块全展开
    • ☘️【zipp】
    • 🔵统计
    • 🔵常量
    • 🔵模块
      • 🌿1 io
      • 🌿2 posixpath
      • 🌿3 zipfile
      • 🌿4 itertools
      • 🌿5 contextlib
      • 🌿6 pathlib
      • 🌿7 re
      • 🌿8 fnmatch
      • 🌿9 zipp.py310compat
    • 🔵函数
      • 🌿10 <lambda>(encoding, stacklevel=2)
      • 🌿11 _parents(path)
      • 🌿12 _ancestry(path)
      • 🌿13 _difference(minuend, subtrahend)
      • 🌿14 _extract_text_encoding(encoding=None, *args, **kwargs)
    • 🔵类
      • 🌿15 zipp.InitializedState
      • 🌿16 zipp.CompleteDirs
        • method
        • 1 getinfo(self, name)
        • 2 namelist(self)
        • 3 resolve_dir(self, name)
        • class method
        • 4 make(cls, source)
      • 🌿17 zipp.FastLookup
        • method
        • 1 namelist(self)
      • 🌿18 zipp.Path
        • property
        • method
        • 7 read_text(self, *args, **kwargs)
        • 8 read_bytes(self)
        • 9 relative_to(self, other, *extra)
        • 10 match(self, path_pattern)
        • 11 is_symlink(self)
        • 12 match(self, path_pattern)
        • 13 glob(self, pattern)
        • 14 rglob(self, pattern)
        • 15 open(self, mode='r', *args, pwd=None, **kwargs)
        • 16 is_dir(self)
        • 17 is_file(self)
        • 18 exists(self)
        • 19 iterdir(self)
    • 🔵内嵌函数或方法
    • 🔵私有或局部
    • ☘️【io】
    • ☘️【posixpath】
    • ☘️【zipfile】
    • ☘️【itertools】
    • ☘️【contextlib】
    • ☘️【pathlib】
    • ☘️【re】
    • ☘️【fnmatch】
    • ☘️【zipp.py310compat】
    • ☘️【sys】

🧊摘要

  • 全文介绍python的 zipp 模块(ZipFile 的一些兼容子类和补充接口)、函数、类及类的方法和属性。
  • 它通过代码抓取并经AI智能翻译和人工校对。
  • 是一部不可多得的权威字典类工具书。它是系列集的一部分。后续陆续发布、敬请关注。【原创:AhcaoZhu大侠】

🧊模块图

zipp-module

zipp
	◆posixpath
	◆zipfile
	zipp.py310compat

🧊类关系图

zipp-class

◆object
	◆BaseException
		◆Exception
			◆zipfile.BadZipFile
			◆zipfile.LargeZipFile
	◆_frozen_importlib.BuiltinImporter
	◆_io._IOBase
		◆_io._BufferedIOBase
			◆io.BufferedIOBase
				◆zipfile.ZipExtFile
				◆zipfile._ZipWriteFile
	◆zipfile.LZMACompressor
	◆zipfile.LZMADecompressor
	◆zipfile.ZipFile
		◆zipfile.PyZipFile
		zipp.InitializedState
			zipp.CompleteDirs
				zipp.FastLookup
	◆zipfile.ZipInfo
	◆zipfile._SharedFile
	◆zipfile._Tellable
	zipp.InitializedState
	zipp.Path

🧊模块全展开

☘️【zipp】

zipp, fullname=zipp, file=zipp_init_.py

🔵统计

序号类别数量
4str4
6list2
8dict1
9module9
10class4
11function5
12builtin_function_or_method1
13residual3
14system10
15private5
16all29

🔵常量

🔵模块

🌿1 io

io, fullname=io, file=io.py

🌿2 posixpath

posixpath, fullname=posixpath, file=posixpath.py

🌿3 zipfile

zipfile, fullname=zipfile, file=zipfile.py

🌿4 itertools

itertools, fullname=itertools

🌿5 contextlib

contextlib, fullname=contextlib, file=contextlib.py

🌿6 pathlib

pathlib, fullname=pathlib, file=pathlib.py

🌿7 re

re, fullname=re, file=re.py

🌿8 fnmatch

fnmatch, fullname=fnmatch, file=fnmatch.py

🌿9 zipp.py310compat

py310compat, fullname=zipp.py310compat, file=zipp\py310compat.py

🔵函数

🌿10 (encoding, stacklevel=2)

(encoding, stacklevel=2), module=zipp.py310compat, line:1 at ring>

🌿11 _parents(path)

parents(path), module=zipp, line:16 at site-packages\zipp_init.py

给定一个用posixpath.sep分隔元素的路径。生成该路径的所有父路径。
    >>> list(_parents('b/d'))
    ['b']
    >>> list(_parents('/b/d/'))
    ['/b']
    >>> list(_parents('b/d/f/'))
    ['b/d', 'b']
    >>> list(_parents('b'))
    []
    >>> list(_parents(''))
    []

🌿12 _ancestry(path)

ancestry(path), module=zipp, line:35 at site-packages\zipp_init.py

给定一个用osixpath.sep分隔元素的路径,生成该给定路径上所有元素。
    >>> list(_ancestry('b/d'))
    ['b/d', 'b']
    >>> list(_ancestry('/b/d/'))
    ['/b/d', '/b']
    >>> list(_ancestry('b/d/f/'))
    ['b/d/f', 'b/d', 'b']
    >>> list(_ancestry('b'))
    ['b']
    >>> list(_ancestry(''))
    []

🌿13 _difference(minuend, subtrahend)

difference(minuend, subtrahend), module=zipp, line:61 at site-packages\zipp_init.py

返回减数形式而不是减数形式的项,保持0(1)查找的顺序。

🌿14 _extract_text_encoding(encoding=None, *args, **kwargs)

extract_text_encoding(encoding=None, *args, **kwargs), module=zipp, line:171 at site-packages\zipp_init.py

🔵类

🌿15 zipp.InitializedState

InitializedState, zipp.InitializedState, module=zipp, line:-1 at site-packages\zipp_init_.py

为序列化嵌入式保存初始化状态。

🌿16 zipp.CompleteDirs

CompleteDirs, zipp.CompleteDirs, module=zipp, line:-1 at site-packages\zipp_init_.py

一个ZipFile子类,它确保隐含的目录总是包含在名称列表中。
    >>> list(CompleteDirs._implied_dirs(['foo/bar.txt', 'foo/bar/baz.txt']))
    ['foo/', 'foo/bar/']
    >>> list(CompleteDirs._implied_dirs(['foo/bar.txt', 'foo/bar/baz.txt', 'foo/bar/']))
    ['foo/']

method

1 getinfo(self, name)

kind=method class=CompleteDirs objtype=function

为隐含的dirs补充getinfo。

2 namelist(self)

kind=method class=CompleteDirs objtype=function

3 resolve_dir(self, name)

kind=method class=CompleteDirs objtype=function

如果名称代表一个目录,则返回该名称作为目录(带尾斜杠)。

class method

4 make(cls, source)

kind=class method class=CompleteDirs objtype=classmethod

给定一个源文件(filename或zipfile),返回一个适当的CompleteDirs子类。

🌿17 zipp.FastLookup

FastLookup, zipp.FastLookup, module=zipp, line:-1 at site-packages\zipp_init_.py

ZipFile子类,以确保隐式文件存在并快速解析。

method

1 namelist(self)

kind=method class=FastLookup objtype=function

🌿18 zipp.Path

Path, zipp.Path, module=zipp, line:-1 at site-packages\zipp_init_.py

zip文件的路径库兼容接口。
考虑一个zip文件,它的结构如下:
        .
        ├── a.txt
        └── b
            ├── c.txt
            └── d
                └── e.txt
    >>> data = io.BytesIO()
    >>> zf = zipfile.ZipFile(data, 'w')
    >>> zf.writestr('a.txt', 'content of a')
    >>> zf.writestr('b/c.txt', 'content of c')
    >>> zf.writestr('b/d/e.txt', 'content of e')
    >>> zf.filename = 'mem/abcde.zip'
    Path接受zipfile对象本身或文件名。
    >>> root = Path(zf)
    从那里,有几个路径操作可用。
    目录迭代(包括zip文件本身):
    >>> a, b = root.iterdir()
    >>> a
    Path('mem/abcde.zip', 'a.txt')
    >>> b
    Path('mem/abcde.zip', 'b/')
    name 属性:
    >>> b.name
    'b'
    用除号操作符连接:
    >>> c = b / 'c.txt'
    >>> c
    Path('mem/abcde.zip', 'b/c.txt')
    >>> c.name
    'c.txt'
    读入文本:
    >>> c.read_text(encoding='utf-8')
    'content of c'
    存在性:
    >>> c.exists()
    True
    >>> (b / 'missing.txt').exists()
    False
    强制转换为字符串:
    >>> import os
    >>> str(c).replace(os.sep, posixpath.sep)
    'mem/abcde.zip/b/c.txt'
    在根目录中,``name``, ``filename`` 和 ``parent`` 解析为zip文件。
    注意,这些属性是无效的,如果zipfile没有文件名,将引发 ``ValueError`` 。
    >>> root.name
    'abcde.zip'
    >>> str(root.filename).replace(os.sep, posixpath.sep)
    'mem/abcde.zip'
    >>> str(root.parent)
    'mem'

property

1 filename=<property object at 0x00000243651E7598> kind:property type:property class:<class ‘zipp.Path’>
2 name=<property object at 0x00000243651E7458> kind:property type:property class:<class ‘zipp.Path’>
3 parent=<property object at 0x00000243651E75E8> kind:property type:property class:<class ‘zipp.Path’>
4 stem=<property object at 0x00000243651E7548> kind:property type:property class:<class ‘zipp.Path’>
5 suffix=<property object at 0x00000243651E74A8> kind:property type:property class:<class ‘zipp.Path’>
6 suffixes=<property object at 0x00000243651E74F8> kind:property type:property class:<class ‘zipp.Path’>

method

7 read_text(self, *args, **kwargs)

kind=method class=Path objtype=function

8 read_bytes(self)

kind=method class=Path objtype=function

9 relative_to(self, other, *extra)

kind=method class=Path objtype=function

10 match(self, path_pattern)

kind=method class=Path objtype=function

11 is_symlink(self)

kind=method class=Path objtype=function

返回该路径是否为符号链接。总是false (python/cpython#82102)。

12 match(self, path_pattern)

kind=method class=Path objtype=function

13 glob(self, pattern)

kind=method class=Path objtype=function

14 rglob(self, pattern)

kind=method class=Path objtype=function

15 open(self, mode=‘r’, *args, pwd=None, **kwargs)

kind=method class=Path objtype=function

通过将参数传递给io.TextIOWrapper(),以文本或二进制形式按照 ``pathlib.Path.open()`` 的语义打开此条目。

16 is_dir(self)

kind=method class=Path objtype=function

17 is_file(self)

kind=method class=Path objtype=function

18 exists(self)

kind=method class=Path objtype=function

19 iterdir(self)

kind=method class=Path objtype=function

🔵内嵌函数或方法

19 _dedupe <built-in method fromkeys of type object at 0x00007FFC7765B860>

🔵私有或局部

20 _parents <function _parents at 0x00000243651A24C8>
21 _ancestry <function _ancestry at 0x00000243651E2948>
22 _dedupe <built-in method fromkeys of type object at 0x00007FFC7765B860>
23 _difference <function _difference at 0x00000243651E2828>
24 _extract_text_encoding <function _extract_text_encoding at 0x00000243651E2A68>

☘️【io】

io, fullname=io, file=io.py

☘️【posixpath】

posixpath, fullname=posixpath, file=posixpath.py

☘️【zipfile】

zipfile, fullname=zipfile, file=zipfile.py

☘️【itertools】

itertools, fullname=itertools

☘️【contextlib】

contextlib, fullname=contextlib, file=contextlib.py

☘️【pathlib】

pathlib, fullname=pathlib, file=pathlib.py

☘️【re】

re, fullname=re, file=re.py

☘️【fnmatch】

fnmatch, fullname=fnmatch, file=fnmatch.py

☘️【zipp.py310compat】

py310compat, fullname=zipp.py310compat, file=zipp\py310compat.py

☘️【sys】

sys, fullname=sys

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/527765.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

直观理解torch.gather函数(带图)

直观理解torch.gather函数 1. gather的作用 因为深度学习里面&#xff0c;像分类或者分割&#xff0c;有时候去进行loss计算或准确度计算的时候&#xff0c;需要挑选某个维度特定的值&#xff0c;所以有了这么个函数。注意不要高估这个函数的能力&#xff0c;这个函数只是在指…

大数据技术之Sqoop

第1章 Sqoop简介 Sqoop是一款开源的工具&#xff0c;主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递&#xff0c;可以将一个关系型数据库&#xff08;例如 &#xff1a; MySQL ,Oracle ,Postgres等&#xff09;中的数据导进到Hadoop的HDFS中&…

破案小说中的《人月神话》和女装

DDD领域驱动设计批评文集>> 《软件方法》强化自测题集>> 《软件方法》各章合集>> 在破案小说《谁是凶手》中&#xff0c;《人月神话》、《程序员修炼之道》以及女装作为素材出现了。 成功学&#xff08;鸡汤学&#xff09;书籍《用所有的存在与世界相会》…

如何制定一套有效的期货交易系统策略?

期货交易是一项全球性的金融交易&#xff0c;对于投资者来说&#xff0c;制定有效的期货交易系统策略是至关重要的。在制定期货交易策略时&#xff0c;需要考虑市场趋势、资产种类、交易成本、仓位控制等多个方面。 很多刚进入期货市场的朋友&#xff0c;甚至很多做了很久期货…

JS代码优化——逻辑判断

文章目录 JavaScript 语法篇嵌套层级优化多条件分支的优化处理使用数组新特性简化逻辑判断**多条件判断****判断数组中是否所有项都满足某条件****判断数组中是否有某一项满足条件** **函数默认值**使用默认参数使用解构与默认参数复杂数据解构 策略模式优化分支逻辑处理 JavaS…

Mars3d实现加载gif动图

官网有相关示例参考&#xff1a;功能示例(Vue版) | Mars3D三维可视化平台 | 火星科技 功能示例(Vue版) | Mars3D三维可视化平台 | 火星科技 方式1&#xff1a; // [终点]绘制台风当前位置gif点 const gifGraphic new mars3d.graphic.DivGraphic({ position: [endItem.lon, e…

【人力资源管理】第3集 免费开源ERP: Odoo 16 hr_holidays管理员工休假和缺勤 构建一体化企业人力资源管理

文章目录 前言一、管理员工休假二、批准或者拒绝休假申请三 、简单报表工具四 、使用功能1.管理休假申请2.报告 总结 前言 管理员工休假和缺勤。 一、管理员工休假 跟踪所有员工的假期 跟踪每位员工的休假天数。员工输入请求&#xff0c;经理对请求进行审批和验证&#xff0…

MYSQL-数据库管理.3(用户管理及用户权限)

一、关系型数据库 数据结构 二维表格 库 -> 表 -> 列&#xff08;字段&#xff09;&#xff1a;用来描述对象的一个属性 行&#xff08;记录&#xff09;&#xff1a;用来描述一个对象的信息 二、非关系型数…

能成事的表达笔记

为什么需要好的沟通&#xff1f; 一.让自己舒服 二.让别人乐意 愿意听听得懂听完愿意配合你 共赢 沟通是思维和视角的改变 向上沟通 &#xff08;领导&#xff0c;客户&#xff09; 是最高效的职场成长路径 痛点&#xff1a; 出于恐惧而挖掘不到真实的需求 一味听从权威…

spring项目里的大事务优化

编程型事务更加灵活 声明式事务只需要加在方法头加Transactional注解即可开启事务&#xff0c;但是还是不太灵活&#xff0c;意味着整个方法所进行对数据库操作都要加进事务&#xff0c;当然一次查询也要进入事务&#xff0c;这并不是我们想要的&#xff0c;我们在update、ins…

电容笔和触控笔哪个好用?2023平价好用的电容笔测评

其实&#xff0c;许多产品各有特色&#xff0c;有的注重外观&#xff0c;而有的注重功能。ipad上的那支笔也是如此的。所以&#xff0c;购买电容笔的时候&#xff0c;必须对电容笔有充分的了解。在选购前&#xff0c;必须了解各种类型的电容笔&#xff0c;以决定选购何种电容笔…

ASEMI代理LTC3309AEV#TRMPBF原装ADI车规级LTC3309AEV#TRMPBF

编辑&#xff1a;ll ASEMI代理LTC3309AEV#TRMPBF原装ADI车规级LTC3309AEV#TRMPBF 型号&#xff1a;LTC3309AEV#TRMPBF 品牌&#xff1a;ADI /亚德诺 封装&#xff1a;LQFN-12 批号&#xff1a;2023 安装类型&#xff1a;表面贴装型 引脚数量&#xff1a;12 工作温度:-4…

数字演播厅全新上线,让您的业务展示事半功倍

向客户汇报时还在手忙脚乱找应用&#xff1f; 给领导汇报时还在尴尬的等待应用漫长的加载&#xff1f; 还在因为没有合适的控制设备而施展不开拳脚&#xff1f; 为帮助广大易知微用户提升演示汇报效果&#xff0c;易知微平台上线了「数字演播厅」功能&#xff0c;该功能专注…

22. Unity - 3D游戏开发小计01 --- 修复动画BUG、更改环境光照、导航网格、相机跟随、场景渲染后期处理

1. 导入玩家角色模型 素材来自于unity官网:3D Beginner:Tutorial Resources 在3D游戏开发中,三维物体模型一般会有团队内的其它成员提供,包括模型本身和动画文件等。我们需要做的是将这些素材进行组合并使用代码进行控制。 若对模型添加动画文件后,当运行时可能会发现模型…

OPPO舍弃芯片研发,让人想起欧洲芯片,国产芯片会从此溃败么?

OPPO一瞬间舍弃芯片研发&#xff0c;对国产芯片造成的影响无疑是非常大的&#xff0c;甚至可能导致国产芯片的研发由此溃败&#xff0c;这可以从当年欧洲的芯片业务衰败作为前车之鉴。 GSM称霸2G时代&#xff0c;也让欧洲手机和欧洲芯片企业取得优势&#xff0c;当年爱立信手机…

小红书文案怎么写才能吸引用户,品牌写文技巧

在小红书平台&#xff0c;文案是笔记非常重要的一环&#xff0c;那么文案怎么写才能吸引人呢?下面就让我们来聊一聊小红书文案写作的一些技巧&#xff0c;希望可以对大家有所帮助。 一、 标题 一个好的标题是非常重要的&#xff0c;这相当于是一篇笔记的门面&#xff0c;决定着…

什么是 Java 中的 AOP(面向切面编程)?如何使用它来实现横切关注点?

AOP&#xff08;Aspect-oriented programming&#xff0c;面向切面编程&#xff09;&#xff0c;是一种编程思想和技术&#xff0c;旨在将横切关注点和主业务逻辑分离&#xff0c;使得系统更容易扩展和维护。在 Java 中&#xff0c;AOP 主要通过代理模式和动态字节码生成实现。…

不限次数的chatGPT

不说废话直接看方法&#xff1a; 不用翻墙&#xff0c;开干 第一步&#xff1a;打开电脑的Edge浏览器&#xff0c;就是windows系统的默认浏览器&#xff0c;搜索wetab&#xff0c;点击如下的官方链接就会进入安装插件界面 第二步&#xff1a;点击chat AI就会弹出这个弹窗&…

如何将 Docker 镜像大小从 1.43 GB 减少到 22.4 MB

如果你正在从事 Web 开发&#xff0c;那么你可能已经了解过容器化的概念以及它的优点。 但是&#xff0c;当使用 Docker 时&#xff0c;镜像大小是一个很大的问题。仅仅是从 create-react-app 中得到的样板项目就通常超过 1.43 GB。 今天我们将会容器化一个 ReactJS 应用程序…

九宫格游戏-第14届蓝桥杯省赛Scratch初级组真题第5题

[导读]&#xff1a;超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成&#xff0c;后续会不定期解读蓝桥杯真题&#xff0c;这是Scratch蓝桥杯真题解析第134讲。 九宫格游戏&#xff0c;本题是2023年5月7日举行的第14届蓝桥杯省赛Scratch图形化编程初级组真题第5题&#…