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

news2024/9/20 17:24:08

在这里插入图片描述

文章目录

    • 一、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 os

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

1.2 列出目录内容

import os

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

1.3 创建和删除目录

import os

os.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 sys

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

2.2 退出程序

import sys

sys.exit("程序终止")

2.3 获取 Python 版本信息

import sys

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

三、datetime 模块

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

3.1 获取当前日期和时间

import datetime

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

3.2 日期和时间的格式化

import datetime

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

3.3 日期和时间的运算

import datetime

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

四、math 模块

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

4.1 常用数学函数

import math

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

4.2 三角函数

import math

print(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 math

class Task:
    def __init__(self, title, description, due_date):
        self.title = title
        self.description = description
        self.due_date = due_date
        self.completed = False

    def mark_completed(self):
        self.completed = True

    def __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 result
    return 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学习和开发有所帮助。


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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

.NET常见的几种项目架构模式,你知道几种?

前言 项目架构模式在软件开发中扮演着至关重要的角色&#xff0c;它们为开发者提供了一套组织和管理代码的指导原则&#xff0c;以提高软件的可维护性、可扩展性、可重用性和可测试性。 假如你有其他的项目架构模式推荐&#xff0c;欢迎在文末留言&#x1f91e;&#xff01;&am…

flutter遇到问题及解决方案

目录 1、easy_refresh相关问题 2、 父子作用域关联问题 3. 刘海屏底部安全距离 4. 了解保证金弹窗 iOS端闪退 &#xff08;待优化&#xff09; 5. loading无法消失 6. dialog蒙版问题 7. 倒计时优化 8. scrollController.offset报错 9. 断点不走 10.我的出价报红 11…

4、(PCT)Point Cloud Transformer

4、&#xff08;PCT&#xff09;Point Cloud Transformer 论文链接&#xff1a;PCT论文链接 本篇论文介绍Transformer在3D点云领域的应用&#xff0c;Transformer在NLP领域和图像处理领域都得到了广泛的应用&#xff0c;特别是近年来在图像领域的应用&#xff0c;本篇论文主要…

希亦超声波清洗机值得购买吗?百元清洁技术之王,大揭秘!

现代社会的高速发展&#xff0c;很多人由于工作繁忙的原因&#xff0c;根本没有时间去清洗自己的日常物品&#xff0c;要知道这些日常物品堆积灰尘之后是很容易就滋生细菌的&#xff0c;并且还会对人体的健康造成一定的危害&#xff01;这个时候很多人就会选择购买一台超声波清…

耐高温滑环的应用场景及市场前景分析

耐高温滑环是一种重要的电气连接装置&#xff0c;广泛应用于需要传递电力和信号的旋转设备中。随着工业技术的发展&#xff0c;对耐高温滑环的需求不断增加&#xff0c;尤其是在极端温度环境下的应用场合&#xff0c;耐高温滑环展现出其独特的优势。 耐高温滑环在工业自动化领…

全国网安众测招募计划启动啦,欢迎加入~

在数字化时代&#xff0c;网络安全已成为维护社会稳定、促进经济发展的基石。为了积极响应国家关于加强网络安全工作的号召&#xff0c;确保某区域关键信息系统的稳固运行&#xff0c;我们特此启动一项网络安全众测活动。该活动旨在通过汇聚业界有经验的网络安全攻防人才&#…

【小程序 - 大智慧】深入微信小程序的渲染周期

目录 前言应用生命周期页面的生命周期组件的生命周期渲染顺序页面路由运行机制更新机制同步更新异步更新 前言 跟 Vue、React 框架一样&#xff0c;微信小程序框架也存在生命周期&#xff0c;实质也是一堆会在特定时期执行的函数。 小程序中&#xff0c;生命周期主要分成了三…

使用 VSCode 在 Python 中创建项目环境

了解如何管理 Python 项目的不同环境&#xff0c;欢迎来到雲闪世界。 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 介绍 创建数据科学项目非常简单。如今&#xff0c;有了众多资源&#xff0c;您只需选择开发工具并启动项目即可。 除了多个人工智能机…

24.9.16数据结构|平衡二叉树

一、理解逻辑 平衡二叉是有限制的二叉搜索树&#xff0c;满足平衡因子绝对值小于1的二叉搜索树是平衡二叉树。 平衡指的是树的左右两边的节点左右高度平衡&#xff0c;要求平衡因子处于规定范围 平衡因子&#xff1a;该节点的左高度-右高度&#xff0c;绝对值小于1 如何平衡化&…

2024年9月20日历史上的今天大事件早读

公元前480年9月20日 希腊人在爱琴海萨拉米海战中击败了波斯人 383年9月20日 发生“淝水之战” 1013年9月20日 《君臣事迹》书成&#xff0c;赐名《册府元龟》 1519年9月20日 葡萄牙航海家麦哲伦环球航行 1644年9月20日 清顺治帝驾车由盛京出发&#xff0c;迁都北平&#xf…

在SpringCloud中实现服务熔断与降级,保障系统稳定性

在分布式系统中&#xff0c;微服务架构的应用越来越受欢迎。然而&#xff0c;由于各个微服务之间的依赖关系和网络通信的不稳定性&#xff0c;一个不稳定的服务可能会对整个系统产生连锁反应&#xff0c;导致系统崩溃。为了保障系统的稳定性&#xff0c;我们需要一种机制来处理…

FB FC里调用全局变量注意事项

PLC编程基础之数据类型、变量声明、全局变量和I/O映射 PLC编程基础之数据类型、变量声明、全局变量和I/O映射(CODESYS篇 )_codesys全局变量如何映射写入-CSDN博客文章浏览阅读6.3k次,点赞2次,收藏4次。本文介绍了CODESYS编程的基础知识,包括数据类型、变量声明、全局变量、…

Unity 设计模式 之 结构型模式 -【适配器模式】【桥接模式】 【组合模式】

Unity 设计模式 之 结构型模式 -【适配器模式】【桥接模式】 【组合模式】 目录 Unity 设计模式 之 结构型模式 -【适配器模式】【桥接模式】 【组合模式】 一、简单介绍 二、适配器模式 (Adapter Pattern) 1、什么时候使用适配器模式 2、使用适配器模式的好处 3、适配器…

Active Directory 实验室设置第一部分- AD林安装

在之前的文章中&#xff0c;已经讨论了活动目录的基本知识。在这篇文章中&#xff0c;我们将讨论如何设置和配置环境&#xff0c;以便我们可以使用它来执行各种攻击方案和检测。我们将讨论如何通过GUI和CLI方式完成。 # 1、Active Directory 设置 让我们从活动目录实验室设置…

【JAVA开源】基于Vue和SpringBoot的校园美食分享平台

本文项目编号 T 033 &#xff0c;文末自助获取源码 \color{red}{T033&#xff0c;文末自助获取源码} T033&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

docker-compose 部署 flink [支持pyflink]

下载 flink 镜像 [rootlocalhost ~]# docker pull flink Using default tag: latest latest: Pulling from library/flink 762bedf4b1b7: Pull complete 95f9bd9906fa: Pull complete a880dee0d8e9: Pull complete 8c5deab9cbd6: Pull complete 56c142282fae: Pull comple…

python安装-升级

这里写自定义目录标题 欢迎使用Markdown编辑器 欢迎使用Markdown编辑器 运行python 或pycharm时报错 [notice] A new release of pip is available: 23.1.2 -> 24.2 [notice] To update, run: python.exe -m pip install --upgrade pipCMD 进入 DOS C:\Users\wang>pyt…

深度学习:(五)初识神经网络

&#xff08;一&#xff09;神经网络的层数 除去输入层&#xff0c;但包括输出层&#xff0c;每一层都有自己的参数。 输入层称为第零层。 &#xff08;二&#xff09;最简单的神经网络&#xff08;逻辑回归&#xff09; 下图中的小圆圈&#xff0c;代表了一种运算。且一个小…

手撕小顶堆

1. 抛砖引玉 给定两个以升序排列的整数数组 nums1 和 nums2 , 以及一个整数 k 。 定义一对值 (u,v)&#xff0c;其中第一个元素来自 nums1&#xff0c;第二个元素来自 nums2 。 请找到和最小的 k 个数对 (u1,v1), (u2,v2) … (uk,vk) 。 分析 大根堆&#xff08;大顶堆&#x…

vue无法通过页面路径访问提示404,通过nginx配置处理

部署vue项目时&#xff0c;可以通过IP的方式访问主页&#xff0c;当进入特定页面在刷新时&#xff0c;因为浏览器通过URL地址进行请求&#xff0c;就提示404错误。 每次都需要重新从主页进入&#xff0c;这里是因为nginx配置的问题&#xff0c;在nginx里增加一行重定向的设置 …