Python标准库常用模块的典型用法介绍与案例

目录

1. os模块

典型用法

案例

2. sys模块

典型用法

案例

3. datetime模块

典型用法

案例

4. re模块

典型用法

案例

5. json模块

典型用法

案例

6. random模块    

典型用法    

  案例   

 7. collections模块

典型用法

案例

总结



Python作为一门功能强大的编程语言,其标准库(Standard Library)提供了丰富的模块,涵盖了从文件操作、数据处理到网络编程等各个方面。这些模块不仅功能强大,而且易于使用,为开发者提供了极大的便利。本文将详细介绍Python标准库中一些常用模块的典型用法,并通过实际案例帮助新手朋友理解和掌握。

1. os模块

os模块是Python中与操作系统交互的接口,提供了许多与文件和目录操作相关的函数。以下是一些典型用法和案例。

典型用法

  • 文件和目录操作:如创建、删除、重命名文件和目录。
  • 环境变量访问:获取和设置环境变量。
  • 进程管理:执行外部命令和脚本。

案例

import os  
  
# 获取当前工作目录  
current_dir = os.getcwd()  
print(f"当前工作目录: {current_dir}")  
  
# 创建一个新目录  
new_dir = "my_directory"  
os.mkdir(new_dir)  
print(f"创建目录: {new_dir}")  
  
# 列出当前目录下的所有文件和目录  
print("文件和目录列表:")  
for item in os.listdir(current_dir):  
    print(item)  
  
# 删除新创建的目录  
os.rmdir(new_dir)  
print(f"删除目录: {new_dir}")

2. sys模块

sys模块提供了与Python解释器交互的功能,常用于处理Python的运行时环境。

典型用法

  • 命令行参数处理:通过sys.argv获取命令行参数。
  • 环境变量和路径操作:通过sys.path和sys.modules管理模块路径和已加载的模块。
  • 程序退出:通过sys.exit()退出程序。

案例

import sys  
  
# 获取命令行参数  
print(f"命令行参数: {sys.argv}")  
  
# 退出程序  
sys.exit(0)  # 正常退出

3. datetime模块

datetime模块提供了处理日期和时间的类和函数,是Python中处理时间相关任务的标准方式。

典型用法

  • 获取当前日期和时间。
  • 日期和时间的计算:如时间差计算。
  • 日期和时间的格式化。

案例

from datetime import datetime, timedelta  
  
# 获取当前时间  
current_time = datetime.now()  
print(f"当前时间: {current_time}")  
  
# 格式化时间  
formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")  
print(f"格式化时间: {formatted_time}")  
  
# 计算未来时间  
future_date = current_time + timedelta(days=7)  
print(f"未来日期: {future_date}")  
  
# 计算时间差  
days_diff = (future_date - current_time).days  
print(f"日期差值(天数): {days_diff}")

4. re模块

re模块提供了正则表达式的支持,用于字符串的搜索、替换和匹配。

典型用法

  • 字符串匹配:检查字符串是否符合某种模式。
  • 字符串查找:在字符串中查找符合模式的子串。
  • 字符串替换:替换字符串中符合模式的部分。

案例

import re  
  
# 检查电子邮件地址是否有效  
def is_valid_email(email):  
    pattern = r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$'  
    return re.match(pattern, email) is not None  
  
print(is_valid_email('example@example.com'))  # 输出: True  
print(is_valid_email('not an email'))  # 输出: False

5. json模块

json模块用于处理JSON数据,JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。

典型用法

  • 编码:将Python对象转换成JSON字符串。
  • 解码:将JSON字符串转换成Python对象。

案例

import json  
  
# 将Python对象编码为JSON字符串  
data = {'name': 'John', 'age': 30, 'city': 'New York'}  
json_str = json.dumps(data,indent=4)
print(f"JSON字符串:\n{json_str}")

#将JSON字符串解码为Python对象
json_obj = json.loads(json_str)
print(f"解码后的Python对象:\n{json_obj}")

#写入JSON文件
with open('data.json', 'w') as f:
json.dump(data, f, indent=4)

#从JSON文件读取
with open('data.json', 'r') as f:
loaded_data = json.load(f)
print(f"从文件加载的Python对象:\n{loaded_data}")

6. random模块    

`random`模块用于生成随机数,这在模拟、游戏开发、测试等场景中非常有用。    

典型用法    

  • 生成随机浮点数。  
  • 生成随机整数。  
  • 随机选择:从序列中随机选择一个或多个元素。  
  • 随机打乱:随机打乱序列中元素的顺序。  

  
案例  
 

import random  
  
# 生成随机浮点数  
print(f"随机浮点数: {random.random()}")  
  
# 生成指定范围内的随机整数  
print(f"1到10之间的随机整数: {random.randint(1, 10)}")  
  
# 从列表中随机选择一个元素  
items = ['apple', 'banana', 'cherry']  
print(f"随机选择的元素: {random.choice(items)}")  
  
# 从列表中随机选择多个不重复的元素  
print(f"随机选择的多个元素: {random.sample(items, 2)}")  
  
# 随机打乱列表  
random.shuffle(items)  
print(f"打乱后的列表: {items}")

 7. collections模块

collections模块提供了许多有用的容器数据类型,这些类型是对Python内置容器(如列表、字典等)的补充。

典型用法

  • deque:双端队列,支持从两端快速添加(append)和弹出(pop)元素。
  • Counter:计数器,用于计数可哈希对象。
  • defaultdict:具有默认值的字典,当访问的键不存在时,会返回一个默认值而不是抛出KeyError。
  • OrderedDict:保持元素插入顺序的字典。

案例

from collections import deque, Counter, defaultdict, OrderedDict  
  
# deque  
dq = deque([1, 2, 3])  
dq.append(4)  
dq.appendleft(0)  
print(f"deque: {dq}")  
  
# Counter  
c = Counter(['a', 'b', 'a', 'c', 'b', 'a'])  
print(f"Counter: {c}")  
  
# defaultdict  
dd = defaultdict(int)  
dd['key1'] = 1  
print(f"defaultdict访问不存在的键: {dd['key2']}")  # 输出: 0  
  
# OrderedDict  
od = OrderedDict([('a', 1), ('b', 2), ('c', 3)])  
od.move_to_end('b')  
print(f"OrderedDict: {od}")

总结

以上介绍了Python标准库中一些常用模块的典型用法,并通过实际案例展示了它们在实际编程中的应用。这些模块不仅功能强大,而且易于学习和使用,是Python编程中不可或缺的工具。希望本文能够帮助新手朋友们更好地理解和掌握Python标准库,从而在编程实践中更加得心应手。随着对Python的深入学习,你将发现更多有用的模块和技巧,不断提升自己的编程能力。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

控件-ProgressBar

常用属性 1.android:max:进度条的最大值 2. android: progress:进度条已完成进度值 3. android: indeterminate:如果设置成true,则进度条不精确显示进度 4.style"?android:attr/progressBarStyleHorizontal"水平进度条 案例 进度条加载

探索TXE、TC、RXNE标志位在串口通信中的轮询与中断应用

浅谈一下STM32串口中断之TXE,TC,RXNE标志位 之前做一个项目,用到了串口中断,但是对TXE、TC和RXNE标志位的作用和使用方法不是很清楚,导致在调试过程中遇到了一些问题。通过查阅相关资料和实际操作,我对这三个标志位有了更深入的了…

Python酷库之旅-第三方库Pandas(010)

目录 一、用法精讲 22、pandas.read_hdf函数 22-1、语法 22-2、参数 22-3、功能 22-4、返回值 22-5、说明 22-6、用法 22-6-1、数据准备 22-6-2、代码示例 22-6-3、结果输出 23、pandas.HDFStore.put方法 23-1、语法 23-2、参数 23-3、功能 23-4、返回值 23-5…

【数据分析】Pandas_DataFrame读写详解:案例解析(第24天)

系列文章目录 一、 读写文件数据 二、df查询数据操作 三、df增加列操作 四、df删除行列操作 五、df数据去重操作 六、df数据修改操作 文章目录 系列文章目录前言一、 读写文件数据1.1 读写excel文件1.2 读写csv文件1.3 读写mysql数据库 二、df查询数据操作2.1 查询df子集基本方…

2.5 C#视觉程序开发实例1----CamManager实现模拟相机采集图片

2.5 C#视觉程序开发实例1----CamManager实现模拟相机采集图片 1 目标效果视频 CamManager 2 CamManager读取本地文件时序 3 BD_Vision_Utility添加代码 3.0 导入链接库 BD_OperatorSets.dllSystem.Windows.Forms.dllOpencvSharp 3.1 导入VisionParam中创建的文件Util_FileO…

乡村振兴指数与其30个原始变量数据(Shp/Dta/Excel格式,2000-2022年)

数据简介:这份数据是我国各地级市乡村振兴指数与其30各原始变量数据并对其进行地图可视化表达。城镇化是当今中国社会经济发展的必由之路。当前我国城镇化处于发展的关键时期,但城镇化发展的加快却是一把双刃剑,为何要如此形容呢?因为当前城…

【04】微服务通信组件Feign

1、项目中接口的调用方式 1.1 HttpClient HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 Http 协议的客户端编程工具包,并且它支持 HTTP 协议最新版本和建议。HttpClient 相比传统 JDK 自带的 URLConnectio…

科研绘图系列:R语言径向柱状图(Radial Bar Chart)

介绍 径向柱状图(Radial Bar Chart),又称为雷达图或蜘蛛网图(Spider Chart),是一种在极坐标系中绘制的柱状图。这种图表的特点是将数据点沿着一个或多个从中心向外延伸的轴来展示,这些轴通常围绕着一个中心点均匀分布。 特点: 极坐标系统:数据点不是在直角坐标系中展…

AI时代还需要产品经理吗?需要什么样的?

在人工智能技术迅速发展的今天,我们不禁要思考,产品经理这个角色是否仍然重要?AI时代是否还需要他们? 很明确的说,需要!为什么呢? 首先,我们必须认识到,AI虽然具有强大…

如何理解李彦宏说的“不要卷模型,要卷应用”

如何理解李彦宏说的“不要卷模型,要卷应用” “大家不要卷模型,要卷应用”这句话的意思是,呼吁行业不要把过多的精力和资源投入到模型的研发竞争中,而是应该更加注重基于模型的应用开发。 李彦宏提出这一观点的原因主要有以下几点…

容联云发布容犀大模型应用,重塑企业“营销服”|WAIC 2024

7月6日,在2024世界人工智能大会上,容联云成功举办主题为“数智聚合 产业向上”的生成式应用与大模型商业化实践论坛。 论坛上,容联云发布了容犀智能大模型应用升级,该系列应用包括容犀Agent Copilot、容犀Knowledge Copilot、容犀…

PHP星座微信小程序系统源码

🌟每日星运,尽在掌握!星座微信小程序,你的专属星空指南✨ 🌈 一、每日运势,精准推送 想知道今天的你运势如何?星座微信小程序来告诉你!🔮 每天醒来,打开小程…

排座椅【详细代码题解】

[NOIP2008 普及组] 排座椅 题目描述 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情。不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的 D D D 对同学上课时…

(二)前端javascript中的数据结构之栈

栈是一种遵从后进先出(LIFO)原则的有序集合。新添加的或待删除的元素都保存在栈的 同一端,称作栈顶,另一端就叫栈底。在栈里,新元素都靠近栈顶,旧元素都接近栈底。 栈是限定仅在表的一端进行插入和删除操作…

CnosDB:深入理解时序数据修复函数

CnosDB是一个专注于时序数据处理的数据库。CnosDB针对时序数据的特点设计并实现了三个强大的数据修复函数: timestamp_repair – 对时间戳列进行有效修复,支持插入、删除、不变等操作。value_repair – 对值列进行智能修复,根据时间戳间隔和…

【学习笔记】网络设备(华为交换机)基础知识2——常用设备管理命令

一、前期准备 提示:下面所有学习内容都是基于以下条件完成的 条件1.已经可以正常访问交换机的命令行接口 Console口本地访问教程参考 ① :使用第三方工具(secureCRT软件)通过console口本地访问访问交换机的详细操作过程 Telnet访…

静态路由配置注意事项及黑洞路由的使用

静态路由 1 . 定义 从管理员处学习到的数据转发路径,就称为静态路由。 2 . 路由表 Proto :协议( Protocol ) Direct — 直连链路Static — 静态路由RIP 、OSPF 等 — 动态路由 Pre : 优先级( Preference &#x…

防爆手机终端安全管理平台

防爆手机终端安全管理平台能够满足国家能源、化工企业对安全生产信息化运行需求,能够快速搭建起高效、快捷的移动终端管理平台,提高企业安全生产管理水平,保证企业的安全运行和可持续发展。#防爆手机 #终端安全 #移动安全 能源、化工等生产单…

windows机器免密登录linux主机

1. 正常连接需要输入密码 ssh root1.1.1.1 2. 在Windows上生成SSH密钥对(如果你还没有的话): ssh-keygen 3. scp将id_rsa.pub传输到对应的主机 4.对应机器上查看 5.从windows上免密登录

[数仓]四、离线数仓(Hive数仓系统-续)

第8章 数仓搭建-DWT层 8.1 访客主题 1)建表语句 DROP TABLE IF EXISTS dwt_visitor_topic; CREATE EXTERNAL TABLE dwt_visitor_topic (`mid_id` STRING COMMENT 设备id,`brand` STRING COMMENT 手机品牌,`model` STRING COMMENT 手机型号,`channel` ARRAY<STRING> C…