开始Python -- 标准库(2)

Python——标准库函数 Python标准库函数相关知识 阅读详情

6、shelve模块

shelve模块用来保存数据到文件中

(1)open()函数

l        open()函数用来打开指定的文件(如果文件不存在则创建),返回shelf对象

l        shelf对象是一个类Dictionary对象,只是key值必须是字符串

>>> import shelve

>>> s = shelve.open(r'c:/test.dat')

>>> s['x'] = ['a', 'b', 'c']

(2)需要注意的陷阱

l        下面的写法并不会达到预期目的:

>>> s['x'].append('d')

>>> s['x']

['a', 'b', 'c']

l        解决的方法是使用临时变量重新赋值

>>> temp = s['x']

>>> temp.append('d')

>>> s['x'] = temp

>>> s['x']

['a', 'b', 'c', 'd']

(3)close()

l        保存并关闭文件

>>> s.close()

 

7、re模块

re模块用来支持正则表达式处理。关于正则表达式的内容这里不多说了。

(1)compile(pattern[, flags])

l        将正则表达式字符串转换为pattern对象,用于更有效的匹配操作

(2)search(pattern, string[, flags])

l        查找指定的字符串,找到匹配指定的正则表达式的第一个子串;找到返回MatchObject对象(后面讲述),没找到返回None

(3)match(pattern, string[, flags])

l        检查指定的字符串开始是否匹配指定的正则表达式,返回值同search

l        match()函数不必匹配整个字符串,如果需要匹配整个字符串,在正则表达式最后加$

(4)split(pattern, string[, maxsplit=0])

l        split()函数类似于String的split()函数,但是允许使用正则表达式作为分割字符串

>>> some_text = 'alpha, beta,,,,gamma delta'

>>> re.split('[, ]+', some_text)

['alpha', 'beta', 'gamma', 'delta']

(5)findall(pattern, string)

l        返回指定字符串中匹配指定正则表达式的子串List

(6)sub(pat, repl, string[, count=0])

l        将指定字符串中匹配指定正则表达式的子串替换为repl返回(后面详细讲述)

l        repl可以是用来进行替换处理的函数,这时函数有一个MatchObject参数,并返回替换的字符串

(7)escape(string)

l        转义指定字符串中所有正则表达式操作符返回

(8)MatchObject和分组

l        正则表达式中的分组就是用括号括起来的子模式(正则表达式)

l        re模块的函数在匹配到指定模式(正则表达式),返回MatchObject对象,包含分组信息:MatchObject.group(0)返回整个匹配的字符串,MatchObject.group(1)返回第一个匹配子模式的子串,以此类推

>>> m = re.match(r'www/.(.*)/..{3}', 'www.python.org')

>>> m.group()

'www.python.org'

>>> m.group(1)

'python'

l        group()函数不指定参数,使用缺省值0

l        start()函数返回指定分组匹配的子串在字符串中的开始索引值

>>> m.start(1)

4

l        end()函数返回指定分组匹配的子串在字符串中的结束索引值

>>> m.end(1)

10

l        span()函数返回指定分组匹配的子串在字符串中的开始和结束索引值Tuple

>>> m.span(1)

(4, 10)

(9)分组在字符串替换中的应用

l        在re.sub()函数中使用分组替换字符串:在替换字符串中所有//n的形式都会替换成分组n匹配的子串,下面是一个将“*something*”替换成“<em>something</em>”的例子:

>>> emphasis_pattern = r'/*([^/*]+)/*'

>>> re.sub(emphasis_pattern, r'<em>/1</em>', 'Hello, *world*!')

'Hello, <em>world</em>!'

l        正则表达式中的重复操作符具有贪婪性,会尽可能多的匹配。下面的例子并不是所期望的结果:

>>> emphasis_pattern = r'/*(.+)/*'

>>> re.sub(emphasis_pattern, r'<em>/1</em>', '*This* is *it*!')

'<em>This* is *it</em>!'

l        这里的正则表达式和前面的区别是没有限制“*”对中间的“*”,由于“+”的贪婪性,会匹配到最后一个“*”

l        解决的方法是在重复操作符的后面加“?”,使其不具有贪婪性:

>>> emphasis_pattern = r'/*(.+?)/*'

>>> re.sub(emphasis_pattern, r'<em>/1</em>', '*This* is *it*!')

'<em>This</em> is <em>it</em>!'

(10)简单模板系统的例子

l        主要功能:

Ø        将[something](模板字段)中something作为Python表达式计算,用结果来替换模板字段

Ø        对模板字段中的赋值语句进行赋值操作,以便赋值结果用于表达式计算

Ø        下面是转换的例子:

'The sum of 7 and 9 is [7 + 9].'

'[name="Mr. Gumby"]Hello, [name]'

Ø        转换结果如下:

'The sum of 7 and 9 is 16.'

'Hello, Mr. Gumby'

l        下面是程序清单:

# templates.py

import fileinput, re

# Matches fields enclosed in square brackets:

field_pat = re.compile(r'/[(.+?)/]')

# We'll collect variables in this:

scope = {}

# This is used in re.sub:

def replacement(match):

    code = match.group(1)

    try:

    # If the field can be evaluated, return it:

        return str(eval(code, scope))

    except SyntaxError:

        # Otherwise, execute the assignment in the same scope...

        exec code in scope

        # ...and return an empty string:

        return ''

# Get all the text as a single string:

lines = []

for line in fileinput.input():

    lines.append(line)

text = ''.join(lines)

# Substitute all the occurrences of the field pattern:

print field_pat.sub(replacement, text)

l        定义匹配模板字段的正则表达式

l        定义用于表达式计算的作用范围Dictionary(scope)

l        对匹配的内容使用eval()函数在scope作用范围进行表达式计算,以字符串形式返回;

l        如果发生SyntaxError异常,可能是赋值语句,使用exec在scope作用范围执行语句

l        使用re.sub()函数进行模板字段替换

l        这里还用到一个技巧就是:每行内容追加到List中,最后使用join()函数连接。这比使用“+”直接连接字符串要高效得多

l        由于使用了fileinput,执行时可以指定多个文件,所以可以将赋值的内容独立于模板内容,分别放在两个不同的文件中,但执行时赋值内容文件必须在前面指定

Python 解决安装标准库问题 在Python编程的广阔世界中,标准库作为Python的核心组成部分,为开发者提供了丰富的基础功能和工具,从文件操作、网络编程到数据处理,几乎覆盖了日常编程所需的一切。然而,对于刚踏入Python开发领域的新手来说,可能会遇到一些看似复杂的问题,比如安装Python后发现标准库不完整或缺失。本文将详细探讨如何确保Python安装后拥有完整的标准库支持,并通过实践指导帮助新手开发者顺利解决可能遇到的问题。 阅读详情

相关推荐

python的标准库概览

标准库

一个想交朋友的陌生人 1493

python正则表达式详解

正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能不一样,不过只要学会了任意一门语言的正则表达式用法,其他语言中大部分也只是换了个函数的名称而已,本质都是一样的。下面,我来介绍一下python中的正则表达式是怎么使用的。   首先,python中的...

菜鸟清风 1460

Python标准库2

[Python标准库].荷尔曼.扫描版(ED2000.COM).part2

Python中的exec、eval函数与作用域(scope)

  Python2与Python3的语法区别是引起了我对exec的注意,进而探讨一下python的命名空间(作用域) exec()函数   exec()最有用的地方在于可以动态地创建代码字符串。然而,如果字符串是从其他地方获得的——很有可能是用户——那么几乎不能确定其中到底包含什么代码。所以为了安全起见,可以增加一个字典,起到命名空间的作用。 例: # Python2版: from mat...

MyCyber 5677

CoppeiaSim(VREP)入门

vrep/CoppeliaSim关节抖动问题原因总结【Coppeliasim|轨迹规划(一)】设置机械臂的关节角时保证机械臂不散架设置机械臂的关节角时保证机械臂不散架。

weixin_50624597的博客 3227

85-dify案例分享-无需OpenAI账号,Dify+Sora2工作流实战:一键生成写实动漫视频,插件+教程全解析

本文详细解析了如何利用Dify平台结合Sora2插件,搭建无需OpenAI账号的AI视频生成工作流。通过可视化拖拽配置,用户输入文本描述即可一键生成高质量的写实或动漫风格短片,极大降低了AI视频创作的技术门槛。教程涵盖插件安装、API密钥获取、工作流搭建及优化技巧,助力创作者快速实现创意。

weixin_29053577的博客 554

第十章 自带电池(模块)

python 自带的模块  标准库(standard library) 10.1.1    模块是程序 1.名字 2.位置 使用>>> import sys >>> sys.path.append('c:/python')或者sys.path.expanduser() 首先,我们利用import语句 输入 sys模块。基本上,这句语句告诉Python,我们想要使用这个模块。sys

Mojard的博客 600

C#工业通信完整项目实战:从协议解析到数据库存储,打造工业级全链路数据闭环(完整可复用源码)

工业自动化的核心诉求是「数据闭环」:从工业设备采集真实生产数据 → 解析校验获得有效数据 → 持久化存储到数据库形成生产台账 → 数据分析/报表展示/异常预警,形成采集→解析→处理→存储→应用的全链路数据流转,这也是工业上位机开发的终极落地形态,区别于单纯的「数据采集」demo。本次实战是一套工业级完整投产级项目,基于C# WinForm + .NET Framework 4.8(工业标配)✅双通信链路完美适配:同时封装TCP网口 + 串口(RS232/485)

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1038

Python - 基础模版学习

1. 正则表达式替换: # templates.py import fileinput, re field_pat = re.compile(r'\[(.+?)\]') scope = {} def replacement(match):     code = match.group(1)     try:#scope提供名称空间 code = 'a=1', eval_r(code,scope);

smile_benson 510

RK3588+YT9215快速拓展以太网口

YT9215支持7个端口的非阻塞数据传输,确保高效的数据流处理;在开发过程中,最重要的一点就是YT9215与RK3588的GMAC连接和配置部分,下面是gmac1对应dtsi文件的修改,包括注释掉rgmii_phy1对应的mdio1,以及gmac1对应的phy-handle部分,同时将gmac1修改成1000Mbps全双工模式。这就是最简单,最快速的RK3588拓展网口的方法了,如果需要用到交换芯片的其他功能,那就不可以直接使用原厂提供的bin,而是需要对YT9215进行另外的驱动开发。

带着耳朵取流浪的博客 2796

【23】C++实战篇——C++报错:LNK2001:无法解析的外部符号 ,LNK2019: 无法解析的外部符号,原因分析及解决方法

该文分析了VS项目中出现的"无法解析的外部符号"LNK2001/LNK2019错误。问题表现为跨项目共享变量时,Projector项目无法解析Line项目中声明的外部变量ImgSavePath和ImgFormat。原因在于头文件声明了变量但未包含实现的源文件。解决方法是将getLine.cpp文件添加到Projector项目中。文章还总结了两种错误代码的区别:LNK2001通常对应变量缺失,LNK2019对应函数缺失。最后列出了具体的报错信息,包括无法解析的变量和函数符号。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 2009

从零开始学 Python 之标准库概览2

Python 的标准库非常广泛,提供了各种各样的工具。该库包含内置模块(用C编写),可以访问系统功能,例如 Python 程序员无法访问的文件 I / O,以及用 Python 编写的模块,这些模块为许多问题提供标准化解决方案。其中一些模块明确地旨在通过将平台特定的内容抽象为平台中立的 API 来鼓励和增强 Python 程序的可移植性。 Python 的标准库(standard library) 是 Python 的一个组成部分,也是 Python 的利器,它可以让编程事半功倍。 Python 标准库第.

qq_33085579的博客 266

【PyTorch深度学习项目实战100例目录】项目详解 + 数据集 + 完整源码

大家好,我是阿光。本专栏整理了《深度学习100例》,内包含了各种不同的深度学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集。正在更新中~ ✨。

优快云 精品推荐 10万+

Python 接口:从协议到抽象基 类(标准库中的抽象基类)

从 Python 2.6 开始,标准库提供了抽象基类。大多数抽象基类在collections.abc 模块中定义,不过其他地方也有。例如,numbers和 io 包中有一些抽象基类。但是,collections.abc 中的抽象基类最常用。我们来看看这个模块中有哪些抽象基类。

钢铁男儿 548

第55篇:数据隐私保护技术盘点——差分隐私、同态加密与它们的坑(踩坑总结)

数据隐私保护是AI工程化中必须严肃对待的课题。差分隐私和同态加密是两把利器,但也都是“重武器”,使用不当反而会伤及自身。差分隐私像“模糊处理”,通过加噪来保证统计安全性,要小心管理隐私预算和效用权衡。同态加密像“保险箱里打算盘”,保证了计算的精确性,但必须承受巨大的性能和工程复杂度代价。我的建议是:从小规模实验开始,先用DP-SGD在MNIST/CIFAR-10等标准数据集上感受噪声与精度的关系;再用TenSEAL等易用的库尝试一个加密逻辑回归,体会密文膨胀和速度延迟。

ai_blue_pm的博客 281

13、数据来源介绍与操作指南

本文详细介绍了多种数据源的特点、操作步骤及适用场景,包括元数据数据源、MongoDB数据源、Pentaho Data Integration数据源、OLAP数据源、Pentaho分析数据源和OLAP4J数据源。通过流程图和表格对比,帮助用户理解不同数据源的选择与使用方法,并提供了实际应用案例和注意事项,旨在提升数据获取与分析效率,支持高效报告生成。

ik678901234的博客 152

Python快速教程目录(转)

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 怎么能快速地掌握Python?这是和朋友闲聊时谈起的问题。 Python包含的内容很多,加上各种标准库、拓展库,乱花渐欲迷人眼。我一直希望写一个快速的、容易上手的Python教程,而且言语简洁,循序渐进,让没有背景的读者也可以从基础开始学习。我将在每一篇中专注于一个小的概...

weixin_33998125的博客 359

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

python快速教程_Python快速教程

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!怎么能快速地掌握Python?这是和朋友闲聊时谈起的问题。Python包含的内容很多,加上各种标准库、拓展库,乱花渐欲迷人眼。我一直希望写一个快速的、容易上手的Python教程,而且言语简洁,循序渐进,让没有背景的读者也可以从基础开始学习。我将在每一篇中专注于一个小的概念,希望在闲暇...

weixin_39878688的博客 54

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

python里的pip有什么用_python的pip有什么用

pip 是 Python 的包管理器。这意味着它是一个工具,允许你安装和管理不属于标准库的其他库和依赖。软件包管理极其重要,所以自 Python3 的 3.4 版本以及 Python2 的 2.7.9 版本开始,pip 一直被直接包括在 Python 的安装包内,同样还被用于 Python 的其它项目中,这使得 pip 成为了每一个 Pythonista(Python用户)必备的工具。使用 pip...

weixin_39796533的博客 192

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

python 解析命令行

python中的命令行解析最简单最原始的方法是使用sys.argv来实现,更高级的可以使用argparse这个模块。argparse从python 2.7开始被加入到标准库中,所以如果你的python版本还在2.7以下,那么需要先手动安装。 基本使用 import argparse parser=argparse.ArgumentParser() parser.add_argu...

weixin_30736301的博客 74

Python常用标准库、模块

文章目录一、常用标准库二、os库`2.1.常用模块方法``2.2.os.path子模块``2.3.遍历目录`三、sys库四、platform五、glob六、random七、subprocess八、pickle九、json`9.1.示例:字典与json互换`十、time十一、datetime`11.1.练习:计算时间差额,如100天零4小时前、100天零4小时后是什么时候`十二、urllib`12.1.示例1:自定义用户代理``12.2.示例2:向接口提交用户数据`十三、hashlib模块十四、tarfile

运维@小兵的博客 3万+

python常用标准库

python常用标准库python常用标准库第一类:Python增强1. 文本处理服务2. 数据类型4. 数字和数学模块5.函数式编程模块6.文件和目录访问7.数据持久化8.数据压缩和存档9.文件格式10.加密服务11.二进制数据服务第二类:系统互动1. Python运行控制通用操作系统服务Python运行时服务并发执行第三类:网络网络和进程间通信互联网数据处理结构化标记处理工具XML处理模块互联网协议和支持python其他标准库contextvars --- 上下文变量多媒体服务国际化程序框架Tk图形用户

人工智能视觉分析算法学习实践和经验分享。 2万+

Python标准库大全

Python标准库大全

gxlcf_516312的博客 1万+

【Python】标准库的使用

Python标准库的使用,日期计算,字符串操作(翻转单词顺序,旋转字符串,统计给定字符串前缀的字符串数目),实现文件查找工具

Yeeear的博客 1万+

Python中有哪些常用的标准库?

一、Python的标准库包含了大量的模块和函数,这些模块和函数为Python编程提供了丰富的功能。这些只是Python标准库中的一部分,实际上Python的标准库功能非常强大,几乎涵盖了编程中可能遇到的所有基础需求。对于更复杂的任务,你可能还需要使用第三方库,这些库通常可以通过pip等工具进行安装和使用。二、如何导入和使用模块?在Python中,导入和使用模块是一个非常基础且重要的操作。模块通常是一个包含Python定义和语句的文件,文件名就是模块名加上.py后缀。

wssc63262的博客 2339
上一篇: 开始Python -- 标准库(1)
下一篇: The Definitive Guide to Grails, Second Edition
ruby_beginner
博客等级 码龄21年 9粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值