当前位置: 首页 > news >正文

Python模块和包:标准库模块(os, sys, datetime, math等)②

在这里插入图片描述

文章目录

    • 一、os 模块
      • 1.1 获取当前工作目录
      • 1.2 列出目录内容
      • 1.3 创建和删除目录
      • 1.4 文件和目录操作
    • 二、sys 模块
      • 2.1 获取命令行参数
      • 2.2 退出程序
      • 2.3 获取 Python 版本信息
    • 三、datetime 模块
      • 3.1 获取当前日期和时间
      • 3.2 日期和时间的格式化
      • 3.3 日期和时间的运算
    • 四、math 模块
      • 4.1 常用数学函数
      • 4.2 三角函数
    • 五、综合详细例子
      • 5.1 代码解释
      • 5.2 运行结果

Python 以其丰富且功能强大的标准库著称。标准库包含了许多模块,可以帮助开发者更高效地完成各种任务。本文将详细介绍一些常用的标准库模块:os、sys、datetime 和 math,并附上一个综合详细的例子来展示它们的使用。

一、os 模块

os 模块提供了非常多的与操作系统交互的函数,用于操作文件和目录。

1.1 获取当前工作目录

import oscurrent_directory = os.getcwd()
print(f"当前工作目录是:{current_directory}")

1.2 列出目录内容

import osdirectory_contents = os.listdir('.')
print(f"当前目录的内容是:{directory_contents}")

1.3 创建和删除目录

import osos.mkdir('test_directory')
print("创建了 test_directory 目录")os.rmdir('test_directory')
print("删除了 test_directory 目录")

1.4 文件和目录操作

import os# 重命名文件
os.rename('old_name.txt', 'new_name.txt')# 删除文件
os.remove('new_name.txt')

二、sys 模块

sys 模块提供了访问与 Python 解释器紧密相关的变量和函数。

2.1 获取命令行参数

import sysprint(f"命令行参数是:{sys.argv}")

2.2 退出程序

import syssys.exit("程序终止")

2.3 获取 Python 版本信息

import sysprint(f"Python 版本信息:{sys.version}")

三、datetime 模块

datetime 模块为日期和时间操作提供了类和方法。

3.1 获取当前日期和时间

import datetimecurrent_datetime = datetime.datetime.now()
print(f"当前日期和时间是:{current_datetime}")

3.2 日期和时间的格式化

import datetimecurrent_datetime = datetime.datetime.now()
formatted_datetime = current_datetime.strftime("%Y-%m-%d %H:%M:%S")
print(f"格式化后的日期和时间是:{formatted_datetime}")

3.3 日期和时间的运算

import datetimetoday = datetime.date.today()
tomorrow = today + datetime.timedelta(days=1)
print(f"今天的日期是:{today}")
print(f"明天的日期是:{tomorrow}")

四、math 模块

math 模块提供了许多数学运算函数。

4.1 常用数学函数

import mathprint(f"π的值是:{math.pi}")
print(f"2 的平方根是:{math.sqrt(2)}")
print(f"3 的 4 次方是:{math.pow(3, 4)}")

4.2 三角函数

import mathprint(f"sin(π/2) = {math.sin(math.pi/2)}")
print(f"cos(π) = {math.cos(math.pi)}")
print(f"tan(π/4) = {math.tan(math.pi/4)}")

五、综合详细例子

以下是一个综合详细的例子,展示了如何使用 ossysdatetimemath 模块来创建一个简单的任务管理系统:

import os
import sys
import datetime
import mathclass Task:def __init__(self, title, description, due_date):self.title = titleself.description = descriptionself.due_date = due_dateself.completed = Falsedef mark_completed(self):self.completed = Truedef __str__(self):status = "Completed" if self.completed else "Pending"return f"Task: {self.title}, Status: {status}, Due: {self.due_date}"class TaskManager:def __init__(self):self.tasks = []def add_task(self, title, description, due_date):task = Task(title, description, due_date)self.tasks.append(task)print(f"Added task: {task}")def remove_task(self, title):self.tasks = [task for task in self.tasks if task.title != title]print(f"Removed task with title: {title}")def get_pending_tasks(self):return [task for task in self.tasks if not task.completed]def get_completed_tasks(self):return [task for task in self.tasks if task.completed]def get_overdue_tasks(self):today = datetime.date.today()return [task for task in self.tasks if task.due_date < today and not task.completed]def log_activity(func):def wrapper(*args, **kwargs):print(f"Executing {func.__name__} at {datetime.datetime.now()}")result = func(*args, **kwargs)print(f"Finished executing {func.__name__}")return resultreturn wrapper@log_activity
def main():task_manager = TaskManager()task_manager.add_task("Buy groceries", "Milk, Bread, Cheese", datetime.date(2024, 7, 15))task_manager.add_task("Complete assignment", "Finish math homework", datetime.date(2024, 7, 10))task_manager.add_task("Clean house", "Living room and kitchen", datetime.date(2024, 7, 20))print("\nAll tasks:")for task in task_manager.tasks:print(task)print("\nPending tasks:")for task in task_manager.get_pending_tasks():print(task)print("\nMarking 'Complete assignment' as completed.")for task in task_manager.tasks:if task.title == "Complete assignment":task.mark_completed()print("\nCompleted tasks:")for task in task_manager.get_completed_tasks():print(task)print("\nOverdue tasks:")for task in task_manager.get_overdue_tasks():print(task)print("\nRemoving 'Buy groceries' task.")task_manager.remove_task("Buy groceries")print("\nAll tasks after removal:")for task in task_manager.tasks:print(task)if __name__ == "__main__":main()

5.1 代码解释

  1. Task类:定义一个任务类,包含标题、描述、截止日期和完成状态。
  2. TaskManager类:管理任务的添加、删除、获取未完成任务、获取已完成任务和获取逾期任务的功能。
  3. log_activity装饰器:用于记录函数的执行时间和状态。
  4. main函数:展示如何使用上述类和装饰器来创建、管理和操作任务。

5.2 运行结果

在这里插入图片描述

这篇博文详细介绍了Python的标准库模块ossysdatetimemath的使用,并提供了一个综合详细的例子,展示了这些模块在实际项目中的应用。希望能对你的Python学习和开发有所帮助。


欢迎点赞|关注|收藏|评论,您的肯定是我创作的动力

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 邮件营销:助力企业转换客户,提升曝光率
  • Redis实践之缓存:设置缓存过期策略
  • web基础+http协议+httpd详细配置
  • docker中图形化界面的转发
  • 大模型技术新手指南:从零开始的全方位教程
  • 二叉树算法
  • Vivado FIR IP 详解 (一)
  • 初始c++:入门基础(完结)
  • 【Mac】系统环境配置
  • 【算法】栈与模拟
  • Vue.js 与后端配合:打造强大的现代 Web 应用
  • 视频格式转为mp4(使用ffmpeg)
  • PCIe扫盲(10)
  • 【vue3】vue3.5
  • Linux vi常用命令
  • 【个人向】《HTTP图解》阅后小结
  • android 一些 utils
  • Java到底能干嘛?
  • nginx 配置多 域名 + 多 https
  • SpiderData 2019年2月23日 DApp数据排行榜
  • SQL 难点解决:记录的引用
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 飞驰在Mesos的涡轮引擎上
  • ------- 计算机网络基础
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 设计模式 开闭原则
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​Java并发新构件之Exchanger
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (小白学Java)Java简介和基本配置
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .form文件_一篇文章学会文件上传
  • .NET Core 成都线下面基会拉开序幕
  • .net 调用海康SDK以及常见的坑解释
  • .net 使用ajax控件后如何调用前端脚本
  • .NET 中创建支持集合初始化器的类型
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .net6Api后台+uniapp导出Excel
  • .NET开发人员必知的八个网站
  • .NET使用存储过程实现对数据库的增删改查
  • @angular/cli项目构建--Dynamic.Form
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • [001-03-007].第07节:Redis中的事务
  • [120_移动开发Android]008_android开发之Pull操作xml文件
  • [Android]创建TabBar
  • [Avalon] Avalon中的Conditional Formatting.
  • [BZOJ1178][Apio2009]CONVENTION会议中心
  • [BZOJ4010]菜肴制作
  • [C#]使用PaddleInference图片旋转四种角度检测