凭海临风的IT江湖

  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 站点地图

  • 公益 404

  • 时间轴

  • 搜索

python standard library collections.abc

发表于 2020-01-12 | 更新于 2022-08-18 | 分类于 python
本文字数: 5.5k | 阅读时长 ≈ 5 分钟

python 标准库 之 collections.abc

每日一词: wrong

adj. 不道德的, 不正当的, 不义的

不确实的, 不正确的, 错误的

不合要求的, 不适合的, 并非合意的

有故障, 有毛病

adv. 方式或方向错误地; 错误地; 结果错误地

n. 罪过, 过失, 罪恶

不义的行为, 不公正的事

时 态: wronged, wronging, wrongs
名 词: wronger
副 词: wrongly
名 词: wrongness

词语:

confound right and wrong

混淆是非,黑白不分

get one wrong

误会某人;误会

right or wrong
adv. 不管如何

something wrong with

…出了毛病;…有问题;…不对头

python 标准库学习之 抽象基类 collection.abc

众所周知,python3中所有类默认继承自object类,意味着父类中所有的方法,子类都继承了。

我个人理解,抽象基类是无法被实例化的,只能子类实现

参考文档

源代码: Lib/_collections_abc.py

该模块定义了一些 抽象基类,它们可用于判断一个具体类是否具有某一特定的接口;例如,这个类是否可哈希,或其是否为映射类。

模块里方法一览,摘自源码

1
2
3
4
5
6
7
8
9
10
__all__ = ["Awaitable", "Coroutine",
"AsyncIterable", "AsyncIterator", "AsyncGenerator",
"Hashable", "Iterable", "Iterator", "Generator", "Reversible",
"Sized", "Container", "Callable", "Collection",
"Set", "MutableSet",
"Mapping", "MutableMapping",
"MappingView", "KeysView", "ItemsView", "ValuesView",
"Sequence", "MutableSequence",
"ByteString",
]
阅读全文 »

python standard library context-manager-types

发表于 2020-01-11 | 更新于 2022-08-18 | 分类于 python
本文字数: 8k | 阅读时长 ≈ 7 分钟

python 标准库 上下文管理类型

每日一词:

intresting :

US [‘ɪntrəstɪŋ] UK [‘ɪntrəstɪŋ]

  • adj.有趣的;有吸引力的
  • v.“interest”的现在分词
  • Web有意思的;令人感兴趣的;引人入胜的

比较级:more interesting
最高级:most interesting

大部分时候,你都是一个人在默默努力,这样,距离成功才会更进一步。

​ – 凭海临风语录

python 标准库学习 上下文管理

什么是上下文管理器?上下文管理器就是一个用装饰器实现上下文协议管理的对象。主要用于保存和恢复各种全局状态,例如关闭文件等。下面我们来了解具体的内容。

函数

  • contextmanager.__enter__()

    进入运行时上下文并返回此对象或关联到该运行时上下文的其他对象。 此方法的返回值会绑定到使用此上下文管理器的 with 语句的 as 子句中的标识符。一个返回其自身的上下文管理器的例子是 file object。 文件对象会从 enter() 返回其自身,以允许 open() 被用作 with 语句中的上下文表达式。一个返回关联对象的上下文管理器的例子是 decimal.localcontext() 所返回的对象。 此种管理器会将活动的 decimal 上下文设为原始 decimal 上下文的一个副本并返回该副本。 这允许对 with 语句的语句体中的当前 decimal 上下文进行更改,而不会影响 with 语句以外的代码。

  • contextmanager.__exit__(*exc_type*, *exc_val*, *exc_tb*)

    退出运行时上下文并返回一个布尔值旗标来表明所发生的任何异常是否应当被屏蔽。 如果在执行 with 语句的语句体期间发生了异常,则参数会包含异常的类型、值以及回溯信息。 在其他情况下三个参数均为 None。自此方法返回一个真值将导致 with 语句屏蔽异常并继续执行紧随在 with 语句之后的语句。 否则异常将在此方法结束执行后继续传播。 在此方法执行期间发生的异常将会取代 with 语句的语句体中发生的任何异常。传入的异常绝对不应当被显式地重新引发 —— 相反地,此方法应当返回一个假值以表明方法已成功完成并且不希望屏蔽被引发的异常。 这允许上下文管理代码方便地检测 __exit__() 方法是否确实已失败。

一个文件操作实例

1
2
3
4
>>> with open("/etc/hosts", "r") as file:
... dir(file)
...
['__class__', '__delattr__', '__doc__', '__enter__', '__exit__', '__format__', '__getattribute__', '__hash__', '__init__', '__iter__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'close', 'closed', 'encoding', 'errors', 'fileno', 'flush', 'isatty', 'mode', 'name', 'newlines', 'next', 'read', 'readinto', 'readline', 'readlines', 'seek', 'softspace', 'tell', 'truncate', 'write', 'writelines', 'xreadlines']

此时的open返回的对象file,就实现了管理打开文件、关闭文件的上下文管理协议。

阅读全文 »

python standard_library operator

发表于 2020-01-10 | 更新于 2022-08-18 | 分类于 python
本文字数: 5.4k | 阅读时长 ≈ 5 分钟

python 标准库 operator

今天的关键词: trouble

trouble

[英] [ˈtrʌbl]

[美] [ˈtrʌbəl]

n.麻烦; 烦恼; 故障; 动乱;

vi.费心; 烦恼;

vt.麻烦; 使烦恼; 折磨;

python 标准库学习 operator

operator 模块提供了一套与Python的内置运算符对应的高效率函数。例如,operator.add(x, y) 与表达式 x+y 相同。 许多函数名与特殊方法名相同,只是没有双下划线。为了向后兼容性,也保留了许多包含双下划线的函数。为了表述清楚,建议使用没有双下划线的函数。

函数包含的种类有:对象的比较运算、逻辑运算、数学运算以及序列运算。

对象比较函数适用于所有的对象,函数名根据它们对应的比较运算符命名。

比较运算

operator.lt(*a*, *b*)

operator.le(*a*, *b*)

operator.eq(*a*, *b*)

operator.ne*a*, *b*)

operator.ge*a*, *b*)

operator.gt*a*, *b*)

operator.__lt__*a*, *b*)

operator.__le__*a*, *b*)

operator.__eq__*a*, *b*)

operator.__ne__*a*, *b*)

operator.__ge__*a*, *b*)

operator.__gt__*a*, *b*)

阅读全文 »

python standard library http.cookies

发表于 2020-01-09 | 更新于 2022-08-18 | 分类于 python
本文字数: 4.4k | 阅读时长 ≈ 4 分钟

python 标准库 http.cookies

最近需要教孩子自然拼读,所以我想还是每天用一个关键词描述吧。

traffic .n UK /træf.ɪk/ US /ˈtræf.ɪk/ 交通(拥堵)

There was heavy/a lot of traffic on the roads this morning.今天早晨道路上车流量很大。

We got stuck in traffic for several hours.我们碰上交通阻塞被堵了好几个小时。

New measures have been introduced to try and ease traffic congestion in the city.这个城市已经采取了新措施,试图缓解交通拥堵。

Five people were injured in a traffic accident (= one involving vehicles).有5人在交通事故中受伤。

US I heard about the accident on the traffic report on the radio this morning.我在今早电台的交通节目中听到了这起事故。

Air traffic has increased 30 percent in the last decade.在过去的10年里,空中交通量增加了30%。

python 标准库学习 http.cookies

http.cookies 模块定义了类实现了http状态管理机制和cookies概念。不仅支持字符串格式化的cookie值,还支持任何序列化对象的cookie值。

模块的实现完全遵循 RFC 2109 和 RFC 2068 协议规范。但MSIE 3.0x不遵循那些规范中概述的字符规则,并且当涉及Cookie处理时,许多当今的浏览器和服务器已经放宽了解析规则。

Cookie名定义字符集中非法字符囊括在 string.ascii_letters,string.digits 和 !#$%&'*+-.^_|~:`中。

核心类

  • exception http.cookies.CookieError

    违反RFC 2109 规范中的错误,例如:不正确的属性或不正确的Set-Cookies header

  • class http.cookies.BaseCookie([*input*])

    这个类是一个字典类型的对象,键是字符串,值是 Morsel 的实例。

    如果设置参数input,实际上是通过load() 方法设置。

  • class http.cookies.SimpleCookie([*input*])

    这个类是从BaseCookie 继承过来并重写了 value_decode() and value_encode()方法。

    SimpleCookies支持字符串格式的cookie values.

阅读全文 »

python standard library http

发表于 2020-01-08 | 更新于 2022-08-18 | 分类于 python
本文字数: 11k | 阅读时长 ≈ 10 分钟

python 标准库之 http

山雨欲来风满楼,最近不是很太平,希望世界和平吧。

python 标准库学习 之 http

http 是一个包,它收集了多个用于处理超文本传输协议的模块:

参考文档

  • http.client 是一个低层级的 HTTP 协议客户端;对于高层级的 URL 访问请使用 urllib.request
  • http.server 包含基于 socketserver 的基本 HTTP 服务类
  • http.cookies 包含一些有用来实现通过 cookies 进行状态管理的工具
  • http.cookiejar 提供了 cookies 的持久化

本次只整理 http.client的内容,后面持续更新。

常量

class http.HTTPStatus

使用方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
>>> from http import HTTPStatus
>>> HTTPStatus.OK
<HTTPStatus.OK: 200>
>>> HTTPStatus.OK == 200
True
>>> HTTPStatus.OK.value
200
>>> HTTPStatus.OK.phrase
'OK'
>>> HTTPStatus.OK.description
'Request fulfilled, document follows'
>>> list(HTTPStatus)
[<HTTPStatus.CONTINUE: 100>, <HTTPStatus.SWITCHING_PROTOCOLS: 101>, ...]
阅读全文 »

python standard library glob

发表于 2020-01-07 | 更新于 2022-08-18 | 分类于 python
本文字数: 3.1k | 阅读时长 ≈ 3 分钟

python 标准库之 glob

在严寒的冬季,温暖人的只有笑脸了吧。

今天继续给大家介绍python标准库 glob

参考文档

glob 模块可根据 Unix 终端所用规则找出所有匹配特定模式的路径名,但会按不确定的顺序返回结果。支持查找文件只用到三个匹配符:’*’, “?”, “[ ]”,不包括波浪线~,因为这个符号在linux代表当前用户的home目录。

对于波浪号和终端变量扩展,请使用 os.path.expanduser() 和 os.path.expandvars())。

根据阅读代码发现,这个底层使用cpython实现, 有兴趣的童鞋可以移步到源代码: Lib/glob.py

相对于高级面向对象路径查找模块pathlib ,glob更偏向底层实现。

函数

  • glob.glob(pathname, *, recursive=False)

    返回匹配 pathname 的可能为空的路径名列表,其中的元素必须为包含一个路径信息的字符串。 pathname 可以是绝对路径 (如 /usr/src/Python-1.5/Makefile) 或相对路径 (如 ../../Tools/*/*.gif),并且可包含 shell 风格的通配符。 结果也将包含无效的符号链接 (与在 shell 中一致)。 结果是否排序取决于具体文件系统。

    如果 recursive 为真值,则模式 “**“ 将匹配目录中的任何文件以及零个或多个目录、子目录和符号链接。 如果模式加了一个 os.sep 或 os.altsep 则将不匹配文件。

    备注:在一个较大的目录树中使用 “**“ 模式可能会消耗非常多的时间。 3.5 版更改: 支持使用 “**“ 的递归 glob

  • glob.iglob(pathname, *, recursive=False)

    返回一个 iterator,它会产生与 glob() 相同的结果,但不会实际地同时保存它们。

  • glob.escape(pathname)

    转义所有特殊字符 ('?', '*' 和 '[')。 这适用于当你想要匹配可能带有特殊字符的任意字符串字面值的情况。 在 drive/UNC 共享点中的特殊字符不会被转义,例如在 Windows 上 escape('//?/c:/Quo vadis?.txt') 将返回 '//?/c:/Quo vadis[?].txt'。

阅读全文 »

python standard library textwrap

发表于 2020-01-06 | 更新于 2022-08-18 | 分类于 python
本文字数: 3.4k | 阅读时长 ≈ 3 分钟

Python 标准库 之 textwrap

今天给大家介绍 python标准库中的 textwrap

参考文档

标准库 textwrap 是一个关于文本自动换行和填充的模块。

关于这个模块官网介绍如下:

textwrap 模块提供了一些快捷函数,以及可以完成所有工作的类 TextWrapper。

如果你只是要对一两个文本字符串进行自动换行或填充,快捷函数应该就够用了;

否则的话,你应该使用 TextWrapper 的实例来提高效率。

函数

  • textwrap.wrap(*text*, *width=70*, kwargs)

对 text (字符串) 中的单独段落自动换行以使每行长度最多为 width 个字符。 返回由输出行组成的列表,行尾不带换行符。

  • textwrap.fill(text, width=70, kwargs)

对 text 中的单独段落自动换行,并返回一个包含被自动换行段落的单独字符串。 fill() 是以下语句的快捷方式

1
"\n".join(wrap(text, ...))
  • textwrap.shorten(text, width, kwargs)

折叠并截短给定的 text 以符合给定的 width。

阅读全文 »

python standard library http.server

发表于 2020-01-05 | 更新于 2022-08-18 | 分类于 python
本文字数: 3.6k | 阅读时长 ≈ 3 分钟

python 标准库之 http.server

今天下午主要是陪我闺女,组装完成一个桌面足球,很开心的一下午。

孩子的童年只有一次,有时间多陪陪孩子吧。

python 标准库 http.server

从python2时代开始 SimpleHttpServer就陪伴我走过那些快乐的时光。可以自己建立一个简单的文件服务器,让同事们通过浏览器就可以访问我电脑上的资源,而不需要http server或者 ftp软件。

到了python3时代,这个模块被合并进了http.server。

参考网址

这个模块定义了实现 HTTP 服务器( Web 服务器)的类 。

HTTPServer 是 socketserver.TCPServer 的一个子类。它会创建和侦听 HTTP 套接字,并将请求调度给处理程序。用于创建和运行服务器的代码看起来像这样

1
2
3
4
def run(server_class=HTTPServer, handler_class=BaseHTTPRequestHandler):
server_address = ('', 8000)
httpd = server_class(server_address, handler_class)
httpd.serve_forever()

核心类

class http.server.HTTPServer(server_address, RequestHandlerClass)

该类基于 TCPServer 类,并会将服务器地址存入名为 server_name 和 server_port 的实例变量中。服务器可被处理程序通过 server 实例变量访问。

class http.server.ThreadingHTTPServer(server_address, RequestHandlerClass)

根据官方说明,这是一个基于 ThreadingMixIn的类,主要功能是使用线程处理请求。

阅读全文 »

windows jupyter notebook nbextension usage

发表于 2020-01-04 | 更新于 2022-08-18 | 分类于 python
本文字数: 1.2k | 阅读时长 ≈ 1 分钟

windows下jupyter 安装nbextension 插件填坑记

环境

软件和操作系统 版本号
操作系统 win7 64位 sp1
python版本 3.6.2
jupyter core 4.5.0
jupyter notebook 6.0.0

问题描述

本来以为给jupyter安装个插件,分分钟搞定的事,结果三天了还是没解决。

我回家用win10的电脑,5分钟搞定。

尝试了各种方式,卸载重装,修改环境变量,换不同的python版本。后来我快要放放弃的时候,我终于搞定了。

阅读全文 »

python standard library webbrowser

发表于 2020-01-03 | 更新于 2022-08-18 | 分类于 python , standard_library
本文字数: 2.9k | 阅读时长 ≈ 3 分钟

python 标准库之 webbrowser

没啥前提

一张图表示我现在的心情

冷啊

标准库 webbrowser

webbrowser 模块提供了一个高级接口,允许向用户显示基于Web的文档。 在大多数情况下,只需从该模块调用 open() 函数就可以了。

在 Unix 下,图形浏览器在 X11 下是首选,但如果图形浏览器不可用或 X11 显示不可用,则将使用文本模式浏览器。 如果使用文本模式浏览器,则调用进程将阻塞,直到用户退出浏览器。

如果存在环境变量 BROWSER ,则将其解释为 os.pathsep 分隔的浏览器列表,以便在平台默认值之前尝试。 当列表部分的值包含字符串 %s 时,它被解释为一个文字浏览器命令行,用于替换 %s 的参数 URL ;如果该部分不包含 %s,则它只被解释为要启动的浏览器的名称。

脚本 webbrowser 可以用作模块的命令行界面。它接受一个 URL 作为参数。还接受以下可选参数:-n 如果可能,在新的浏览器窗口中打开 URL ; -t 在新的浏览器页面(“标签”)中打开 URL。这些选择当然是相互排斥的。用法示例:

1
python -m webbrowser -t "https://jeffsui.github.io"
阅读全文 »
1…101112…15
Jeff Sui

Jeff Sui

150 日志
37 分类
173 标签
RSS
GitHub E-Mail
  • 20201
  • 2to31
  • Boolean1
  • Centos2
  • Exception1
  • GIL1
  • GitGutter1
  • Tkinter1
  • TypeScript2
  • XML2
  • __all__1
  • _thread1
  • app1
  • argparse2
  • array1
  • atexit1
  • bisect1
  • calendar1
  • centos1
  • checkbox1
  • cmath1
  • cmd1
  • code1
  • collections.abc1
  • concurrent1
  • conda1
  • context-manager-types1
  • cookies1
  • copy1
  • coroutines1
  • csv1
  • cygwin1
  • dataclasses1
  • dbm1
  • dict1
  • dictionary1
  • difflib1
  • dis1
  • django4
  • docker3
  • doctest1
  • dom1
  • eclipse1
  • enum1
  • es61
  • esp323
  • esptool1
  • ffmpeg1
  • filecmp1
  • fileinput1
  • fractions1
  • functools1
  • futures1
  • gc1
  • generator1
  • git4
  • gitcafe1
  • github1
  • glob1
  • heapq1
  • hexo2
  • html.parser1
  • http2
  • http.server1
  • ios1
  • iterator1
  • itertools1
  • java3
  • javascript6
  • javaweb2
  • jdk1
  • jira1
  • json1
  • juypter1
  • keyword1
  • linecache1
  • linter1
  • linux2
  • lite-server1
  • m3u81
  • maven4
  • micorpython1
  • micropython2
  • minidom1
  • modulefinder1
  • mongodb1
  • mybatis1
  • mysql1
  • nbextension1
  • nginx1
  • nodejs2
  • oop1
  • operator1
  • os1
  • os.path1
  • others1
  • pathlib1
  • photo1
  • pickle1
  • pprint1
  • pwd1
  • pycharm1
  • python97
  • python31
  • queue1
  • re1
  • readline1
  • registry2
  • registry-ui2
  • reprlib1
  • rust1
  • sax1
  • sched1
  • select1
  • selectors1
  • selenium3
  • shutil1
  • socket1
  • sort1
  • spring1
  • sqlite32
  • ssm1
  • standar_library1
  • standard_library78
  • statistics1
  • string1
  • sublime1
  • tempfile1
  • this1
  • thread1
  • timeit1
  • turtle2
  • types1
  • uPycraft1
  • unittest1
  • urllib.robotparser1
  • uuid1
  • uv1
  • venv1
  • vite1
  • vscode1
  • vue31
  • weakref1
  • web test2
  • webbrowser1
  • webrepl1
  • windows3
  • xml2
  • 二维码1
  • 办公1
  • 博客3
  • 坑1
  • 字典1
  • 异步1
  • 循环1
  • 感悟1
  • 持续集成1
  • 搭建1
  • 搭建博客1
  • 文章1
  • 杂记3
  • 版本管理2
  • 短网址1
  • 禅道1
  • 笔记1
  • 约束1
  • 网易音乐1
  • 美化1
  • 自动化测试1
  • 软件工程1
  • 逆向工程1
  • 闭包1
  • 项目管理2
© 2015 – 2025 Jeff Sui | 819k | 12:25
由 Hexo 强力驱动 v3.9.0
|
主题 – NexT.Gemini v7.1.1
|
0%