Cookbook
文章平均质量分 96
《Python Cookbook》是一本经典的 Python 编程指南,由 David Beazley 和 Brian K. Jones 编写。它提供了大量实用的代码示例和技巧,帮助开发者解决实际编程中的常见问题。
大数据与AI实验室
计算机科学与技术本科,计算机技术硕士,现任职于某互联网公司,担任大数据研发工程师。CSDN云原生领域优质创作者、博客专家。专注于大数据、云计算、人工智能等融合方向研究,致力于帮助企业解决实际痛点问题、赋能生产,接受相关解决方案咨询。书籍《高质量上云》正在积极撰写中,敬请期待。微信公众号同名:大数据与AI实验室。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Python Cookbook】文件与 IO(三)
需要强调的一点是,内存映射一个文件并不会导致整个文件被读取到内存中。也就是说,文件并没有被复制到内存缓存或数组中。相反,操作系统仅仅为文件内容保留了一段虚拟内存。当你访问文件的不同区域时,这些区域的内容才根据需要被读取并映射到内存区域中。而那些从没被访问到的部分还是留在磁盘上。所有这些过程是透明的,在幕后完成!原创 2025-06-01 14:02:39 · 1115 阅读 · 0 评论 -
【Python Cookbook】文件与 IO(二)
当你想模拟一个普通文件的时候,StringIO 和 BytesIO 类是很有用的。比如,在单元测试中,你可以使用 StringIO 来创建一个包含测试数据的类文件对象,这个对象可以被传给某个参数为普通文件对象的函数。需要注意的是, StringIO 和 BytesIO 实例并没有正确的整数类型的文件描述符。因此,它们不能在那些需要使用真实的系统级文件,如文件,管道或者是套接字的程序中使用。原创 2025-06-01 13:59:56 · 1086 阅读 · 0 评论 -
【Python Cookbook】文件与 IO(一)
当读取一个未知编码的文本时使用 latin-1 编码永远不会产生解码错误。使用 latin-1 编码读取一个文件的时候也许不能产生完全正确的文本解码数据,但是它也能从中提取出足够多的有用数据。同时,如果你之后将数据回写回去,原先的数据还是会保留的。原创 2025-05-31 18:14:05 · 960 阅读 · 0 评论 -
【Python Cookbook】迭代器与生成器(四)
这种特殊的方法对于一些特定的会被重复调用的函数很有效果,比如涉及到 I/O 调用的函数。举例来讲,如果你想从套接字或文件中以数据块的方式读取数据,通常你得要不断重复的执行 read() 或 recv() ,并在后面紧跟一个文件结尾测试来决定是否终止。这节中的方案使用一个简单的 iter() 调用就可以将两者结合起来了。其中 lambda 函数参数是为了创建一个无参的 callable 对象,并为 recv 或 read() 方法提供了 size 参数。原创 2025-05-29 23:30:55 · 1083 阅读 · 0 评论 -
【Python Cookbook】迭代器与生成器(三)
本文介绍了Python中处理迭代和集合操作的几种实用方法。首先讲解了使用itertools模块中的permutations()、combinations()和combinations_with_replacement()函数来生成排列组合。然后介绍了enumerate()函数在迭代时跟踪索引的用法,包括自定义起始索引值。接着说明了zip()函数如何同时迭代多个序列,以及使用zip_longest()处理不等长序列的情况。这些技巧可以简化代码,提高处理集合数据的效率,特别在需要组合、索引或并行迭代时非常实用。原创 2025-05-26 23:28:24 · 1008 阅读 · 0 评论 -
【Python Cookbook】迭代器与生成器(二)
当你需要编写一个生成器函数,但这个生成器还需要提供一些额外的状态(比如历史记录、计数器等)给外部使用时,单纯用生成器函数可能不够方便(因为生成器函数的主要目的是 yield 值,而不是管理状态)。这时候,你可以改用类来实现,将生成器逻辑放在 __iter__() 方法中,并通过类的属性暴露外部状态。原创 2025-05-25 22:01:39 · 856 阅读 · 0 评论 -
【Python Cookbook】迭代器与生成器(一)
DepthFirstIterator 类和上面使用生成器的版本工作原理类似,但是它写起来很繁琐,因为迭代器必须在迭代处理过程中维护大量的状态信息。坦白来讲,没人愿意写这么晦涩的代码。将你的迭代器定义为一个生成器后一切迎刃而解。原创 2025-04-17 23:56:16 · 1037 阅读 · 0 评论 -
【Python Cookbook】数字日期和时间(四)
Olson 时区数据库(也称为 tz database 或 zoneinfo database)是一个全球时区信息的标准数据库,用于计算机系统和软件中正确表示和转换不同地区的时区。它由 Arthur David Olson 创建并维护,因此通常称为 Olson 时区。原创 2025-04-12 12:22:22 · 786 阅读 · 0 评论 -
【Python Cookbook】数字日期和时间(三)
NumPy 是 Python 领域中很多科学与工程库的基础,同时也是被广泛使用的最大最复杂的模块。即便如此,在刚开始的时候通过一些简单的例子和玩具程序也能帮我们完成一些有趣的事情。原创 2025-04-11 22:13:50 · 1134 阅读 · 0 评论 -
【Python Cookbook】数字日期和时间(二)
大整数和字节字符串之间的转换操作并不常见。然而,在一些应用领域有时候也会出现,比如密码学或者网络。例如,IPv6 网络地址使用一个 128 位的整数表示。如果你要从一个数据记录中提取这样的值的时候,你就会面对这样的问题。原创 2025-04-06 20:52:18 · 1166 阅读 · 0 评论 -
【Python Cookbook】数字日期和时间(一)
对于大多数使用到浮点的程序,没有必要也不推荐这样做。尽管在计算的时候会有一点点小的误差,但是这些小的误差是能被理解与容忍的。如果不能允许这样的小误差(比如涉及到金融领域),那么就得考虑使用 decimal 模块了。原创 2025-04-06 19:38:25 · 900 阅读 · 0 评论 -
【Python Cookbook】字符串和文本(五):递归下降分析器
BNF(Backus-Naur Form,巴科斯-诺尔范式)和 EBNF(Extended Backus-Naur Form,扩展巴科斯-诺尔范式)是用于描述编程语言或其他形式语言语法的元语言(描述语言的语言)。它们是编译器设计、文档规范和协议定义中的基础工具。原创 2025-04-04 18:02:43 · 2114 阅读 · 0 评论 -
【Python Cookbook】字符串和文本(四)
在生成 HTML 或者 XML 文本的时候,如何正确的转换特殊标记字符是一个很容易被忽视的细节。特别是当你使用 print() 函数或者其他字符串格式化来产生输出的时候。使用像 html.escape() 的工具函数可以很容易的解决这类问题。原创 2025-04-04 16:00:49 · 1222 阅读 · 0 评论 -
【Python Cookbook】字符串和文本(三)
文本清理问题会涉及到包括文本解析与数据处理等一系列问题。在非常简单的情形下,你可能会选择使用字符串函数(比如 str.upper() 和 str.lower())将文本转为标准格式。使用 str.replace() 或者 re.sub() 的简单替换操作能删除或者改变指定的字符序列。你同样还可以使用 unicodedata.normalize() 函数将 Unicode 文本标准化。原创 2025-03-31 23:42:46 · 1213 阅读 · 0 评论 -
【Python Cookbook】字符串和文本(二)
这一节展示了在写包含点 . 字符的正则表达式的时候遇到的一些常见问题。在一个模式字符串中,点 . 匹配除了换行外的任何字符。然而,如果你将点 . 号放在开始与结束符(比如引号)之间的时候,那么匹配操作会查找符合模式的最长可能匹配。这样通常会导致很多中间的被开始与结束符包含的文本被忽略掉,并最终被包含在匹配结果字符串中返回。原创 2025-03-25 22:09:20 · 1123 阅读 · 0 评论 -
【Python Cookbook】字符串和文本(一)
需要注意的是,如果你打算做大量的匹配和搜索操作的话,最好先编译正则表达式,然后再重复使用它。模块级别的函数会将最近编译过的模式缓存起来,因此并不会消耗太多的性能,但是如果使用预编译模式的话,你将会减少查找和一些额外的处理损耗。原创 2025-03-22 20:32:32 · 899 阅读 · 0 评论 -
【Python Cookbook】数据结构和算法(四)
另外一个值得关注的过滤工具就是 itertools.compress(),它以一个 iterable 对象和一个相对应的 Boolean 选择器序列作为输入参数。然后输出 iterable 对象中对应选择器为 True 的元素。当你需要用另外一个相关联的序列来过滤某个序列的时候,这个函数是非常有用的。比如,假如现在你有下面两列数据:原创 2025-03-22 11:35:07 · 1461 阅读 · 0 评论 -
【Python Cookbook】数据结构和算法(三)
内置的 sorted() 函数有一个关键字参数 key,可以传入一个 callable 对象给它,这个 callable 对象对每个传入的对象返回一个值,这个值会被 sorted 用来排序这些对象。比如,如果你在应用程序里面有一个 User 实例序列,并且你希望通过他们的 user_id 属性进行排序,你可以提供一个以 User 实例作为输入并输出对应 user_id 值的 callable 对象原创 2025-03-20 23:47:40 · 768 阅读 · 0 评论 -
【Python Cookbook】数据结构和算法(二)
你可以很方便的使用 collections 模块中的 defaultdict 来构造这样的字典。defaultdict 的一个特征是它会自动初始化每个 key 刚开始对应的值,所以你只需要关注添加元素操作了原创 2025-03-17 22:32:57 · 1040 阅读 · 0 评论 -
【Python Cookbook】数据结构和算法(一)
任何的序列(或者是可迭代对象)可以通过一个简单的赋值操作来分解为单独的变量。 唯一的要求就是变量的总数和结构必须与序列相吻合。原创 2025-03-15 23:54:19 · 1071 阅读 · 0 评论
分享