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


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

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

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

相关文章

私有化聊天软件成为企业内部通讯新趋势

在数字化转型浪潮的推动下&#xff0c;企业对于高效、安全、灵活的内部通讯需求日益增长。传统的电子邮件、电话会议等沟通方式已难以满足现代企业对即时性、协作性和信息安全性的要求。因此&#xff0c;私有化聊天工具作为企业内部通讯的定制化解决方案&#xff0c;正逐渐成为…

我的数据库第一课:从懵懂到启迪

我的数据库第一课&#xff1a;从懵懂到启迪 前言 在数字化浪潮席卷全球的今天&#xff0c;数据库作为IT技术的“活化石”&#xff0c;已经成为不可或缺的基础设施。特别是在国内&#xff0c;随着经济的飞速发展和信息化建设的推进&#xff0c;数据库技术也经历了从无到有、从…

企业微信用户授权与校验完整对接流程

Hello&#xff01;欢迎各位新老朋友来看小弟博客&#xff0c;祝大家事业顺利&#xff0c;财源广进&#xff01;&#xff01; 主题&#xff1a;企业微信用户授权与校验完整对接流程 一&#xff1a;构造第三方应用授权链接 如果第三方应用需要在打开的网页里面携带用户的身份信息…

解锁数字转型新纪元:Vatee万腾平台,您的智能加速与策略智库

在数字经济时代的大潮中&#xff0c;企业的数字化转型已不再是选择题&#xff0c;而是必答题。面对这一挑战&#xff0c;Vatee万腾平台以其卓越的技术实力和前瞻性的战略视野&#xff0c;成为了众多企业加速数字化转型、实现智能化升级的得力助手和智囊团。 加速转型&#xff…

个人量化成功之路-----用代码一键画图Donchian Channel(唐奇安通道指标)

Donchian Channel&#xff08;唐奇安通道指标&#xff09;是用于交易突破的最古老、最简单的技术指标之一。是由Richard Donchian 提出的一个由三条线&#xff08;上阻力线、下支撑线、中心线&#xff09;组成的通道指标。 一般来说&#xff0c;唐奇安通道的宽度越宽&#xff0…

ISSCC34.7解析一种具备内存编码与刷新功能的eDRAM查找表数字存内计算芯片

一、引言 1. DCIM概述 数字存内计算&#xff08;Digital Computing-in-Memory, DCIM&#xff09;是一种将计算操作直接集成到存储单元中的新兴计算架构。传统计算模型&#xff08;冯诺依曼架构&#xff09;中的计算和存储是分离的&#xff0c;数据必须频繁在存储器和处理单元…

FastDFS的docker部署及实现头像上传

FastDFS的使用并实现头像上传 一、FastDFS概述二、安装FastDFS1. 拉取镜像2. 安装tracker3. 安装storage4. NGINX服务启动三、配置和依赖配置依赖四、头像上传一、FastDFS概述 概述 上传交互过程 两个服务:Tracker Server 和Storage Server Tracker Server 跟踪服务,负责调…

UNRAID系统忘记密码解决办法

前言 unraid系统自己通过命令修改密码以后&#xff0c;怎么也进不去了。 这次带来如何重置密码 操作

着色器 简介

着色器&#xff08;Shader&#xff09;是运行在 GPU 上的小程序。这些小程序为图形渲染管线的某个特定部分而运行。从基本意义上来说&#xff0c;着色器只是一种把输入转化为输出的程序。着色器也是一种非常独立的程序&#xff0c;因为它们之间不能相互通信&#xff1b;它们之间…

C语言进阶【5】---数据在内存中的存储【2】(小数存储很难吗?)

本章概述 本章引要练习 浮点数的存储浮点数的取出小补充题目解析彩蛋时刻&#xff01;&#xff01;&#xff01; 本章引要 常见的浮点数&#xff1a;3.1415&#xff0c;1E10等。其中&#xff0c;1E10是科学计数法的形式&#xff0c;它也就等于1*10^10。小数数据类型&#xff1…

猫头虎 分享已解决Bug || Uncaught (in promise) ReferenceError: proxy is not defined 解决方案

&#x1f42f; 猫头虎 分享已解决Bug || Uncaught (in promise) ReferenceError: proxy is not defined 解决方案 今天猫头虎带您探讨一个开发中常见但让人头疼的错误&#xff1a;Uncaught (in promise) ReferenceError: proxy is not defined。 很多前端开发者在工作中都会遇…

中国书法—孙溟㠭浅析碑帖《爨宝子碑》

中国书法——孙溟㠭浅析碑帖《爨宝子碑》 《爨宝子碑》 全称是《晋故振威将军建宁太守爨宝子之墓》&#xff0c;此碑刻于东晋大亨四年&#xff08;公元405年&#xff09;属楷书体。 《爨宝子碑》 《爨宝子碑》 至清朝乾隆四十三年&#xff08;1778年&#xff09;在云南南宁&…

基于C#+SQL Server2005(WinForm)图书管理系统

图书管理系统 一、 首先把数据库脚本贴出来(数据库名为library) USE [library] GO /****** Object: Table [dbo].[books] Script Date: 06/12/2016 11:27:12 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[books]([bNum] [nvarchar](10…

Σ-Δ模数转换器(ADC)揭秘(2)

5. Maxim的Σ-Δ ADC 新型高度集成Σ-Δ ADC以最少数量的外部元件处理小信号。例如&#xff0c;MAX1402芯片包括众多功能&#xff0c;被作为片上系统(图12)。器件在工作模式下的静态电流低至250A(关断模式下为2A)&#xff0c;480sps速率时的精度为16位&#xff0c;4800sps速率…

英语六级-学习

01 英语分值比例 02听力学习 听力练习&#xff0c;基础好选择标准VOA和BBC。基础差选择VOA慢速。 听力内容包括不受政治争议的内容&#xff0c;社会生活类(奇闻趣事、日常生活)、经济类(商务、职场相关)、环保类、互联网类---------根据各类主题快速找到录音材料中心点。 研…

基于YOLOv8的RTSP视频流实时目标检测与告警系统设计与实现(超详细)

前言 在训练模型完成后&#xff0c;想把模型应用起来&#xff0c;比如模型可以部署到项目中&#xff0c;实时接收RTSP视频流进行识别检测&#xff0c;一旦达到自己所设置的置信度阈值&#xff08;例如大于0.5&#xff09;&#xff0c;系统就会实时把报警信息发送给服务端&…

让银河麒麟桌面操作系统V10(SP1)允许ping测

银河麒麟桌面操作系统V10&#xff08;SP1&#xff09;使用的防火墙是kylin-firewall&#xff0c;默认情况下“公用网络”是禁ping的&#xff0c;如下图&#xff1a; 可以在“安全中心”->“网络保护”->“配置访问规则”->“专网规则”->找到“icmp”这条规则&…

减少代码错误的方法

最重要的是在写之前多举几个刁钻的例子来理解问题和代码的正确性 如果你给不出反例就说明你还没有理解&#xff08;有的反例会后来会被证明是错的&#xff09; 由于递归是把自己的和别人的相关的混合在一起来了&#xff0c;所以举反例的时候要从不同的角度出发。 求割点的&a…

二、电源滤波器

电源滤波器 1、电源滤波的过程分析! 波形形成过程: 2、计算: 滤波电容的容量和耐压值选择。 学习心得

【算法】最长公共子序列(C/C++)

最长公共子序列&#xff08;LCS&#xff0c;Longest Common Subsequence&#xff09;问题简称&#xff08;LCS&#xff09;&#xff0c;是动态规划里面里面的基础算法。它的所解决的问题是&#xff0c;在两个序列中找到一个序列&#xff0c;使得它既是第一个序列的子序列&#…