Python之基本扩展模块

news2025/1/17 5:57:08

一、datetime模块

1.1 主要的模块 

datetime.date()    #处理日期(年、月、日)
datetime.time()    #处理时间(时、分、秒和毫秒)
datetime.datetime()    #处理日期+时间
datetime.timedelta()     #处理时段(时间间隔)
#获取今天的时间
print(datetime.date.today())
print(datetime.datetime.now())

print(datetime.date.today().strftime("%Y-%m-%d %H-%M-%S"))
print(datetime.datetime.now().isoformat())

  1.2 时间戳 

 时间戳是指格林威治时间1970年01月01日00时00分00秒到现在的总秒数。

1.2.1 将日期转换为时间戳以及将时间戳转换为日期

timetuple函数:将日期转化为struct_time格式

time.mktime函数:返回用秒数来表示时间的浮点数

import datetime,time

today = datetime.date.today()
print(today.timetuple())

print(time.mktime(today.timetuple()))

print(datetime.date.fromtimestamp(1668614400.0))

1.2.2 时间上的加减法 

 timedelta()方法表示两个时间点的间隔

import datetime
today = datetime.datetime.now()
print(today)

yesterday = today - datetime.timedelta(days=1)
print(yesterday)

hours = today - datetime.timedelta(hours=1)
print(hours)

二、Calendar模块 

 跟日历相关的若干函数和类,可以生成文本形式的日历。

2.1 常用函数

import calendar
calendar.calendar(<年>)       
calendar.month(<年>,<月>)        #返回多行字符串
calendar.prmonth(<年>,<月>)      #相当于print(calendar.month(<年>,<月>))
calendar.prcal(<年>)             #相当于print(calendar.calendar(<年>))
import calendar

print(calendar.month(2022,11))
print(calendar.calendar(2022))

输出结果展示: 

E:\ProgramData\Anaconda3\python.exe C:/Users/dl/PycharmProjects/MyProjects/1.py
   November 2022
Mo Tu We Th Fr Sa Su
    1  2  3  4  5  6
 7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

                                  2022

      January                   February                   March
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                1  2          1  2  3  4  5  6          1  2  3  4  5  6
 3  4  5  6  7  8  9       7  8  9 10 11 12 13       7  8  9 10 11 12 13
10 11 12 13 14 15 16      14 15 16 17 18 19 20      14 15 16 17 18 19 20
17 18 19 20 21 22 23      21 22 23 24 25 26 27      21 22 23 24 25 26 27
24 25 26 27 28 29 30      28                        28 29 30 31
31

       April                      May                       June
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
             1  2  3                         1             1  2  3  4  5
 4  5  6  7  8  9 10       2  3  4  5  6  7  8       6  7  8  9 10 11 12
11 12 13 14 15 16 17       9 10 11 12 13 14 15      13 14 15 16 17 18 19
18 19 20 21 22 23 24      16 17 18 19 20 21 22      20 21 22 23 24 25 26
25 26 27 28 29 30         23 24 25 26 27 28 29      27 28 29 30
                          30 31

        July                     August                  September
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
             1  2  3       1  2  3  4  5  6  7                1  2  3  4
 4  5  6  7  8  9 10       8  9 10 11 12 13 14       5  6  7  8  9 10 11
11 12 13 14 15 16 17      15 16 17 18 19 20 21      12 13 14 15 16 17 18
18 19 20 21 22 23 24      22 23 24 25 26 27 28      19 20 21 22 23 24 25
25 26 27 28 29 30 31      29 30 31                  26 27 28 29 30

      October                   November                  December
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                1  2          1  2  3  4  5  6                1  2  3  4
 3  4  5  6  7  8  9       7  8  9 10 11 12 13       5  6  7  8  9 10 11
10 11 12 13 14 15 16      14 15 16 17 18 19 20      12 13 14 15 16 17 18
17 18 19 20 21 22 23      21 22 23 24 25 26 27      19 20 21 22 23 24 25
24 25 26 27 28 29 30      28 29 30                  26 27 28 29 30 31

2.2 将日历列表化 

calendar.monthcalendar()

返回某一年的某一个月份日历,是一个嵌套列表。最里层的列表含有七个元素,代表一周(从周一到周日)。如果没有本月的日期,则为0。 

import calendar

print(calendar.monthcalendar(2022,11))

输出结果:

[[0, 1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12, 13], [14, 15, 16, 17, 18, 19, 20], [21, 22, 23, 24, 25, 26, 27], [28, 29, 30, 0, 0, 0, 0]]

 2.3 判断闰年

calendar.isleap(<年>)
import calendar

print(calendar.isleap(2022))
print(calendar.isleap(2000))

输出结果:
False
True

  2.4 判断月数和周几

计算某月从周几开始,共有几天的时候,是从0开始,周一、周二……

计算某天是周几的时候,返回的是0-6,依次对应的是周一到周日。

import calendar

print(calendar.monthrange(2022,11))
print(calendar.weekday(2022,11,18))

输出结果:
(1, 30)
4

三、time模块 

3.1 获取时间戳 

time.time() 方法

可以计算某段程序的运行时间

import time

t1 = time.time()
a = 0
for i in range(10000):
    a += i
print(a)
t2 = time.time()
print(t2-t1)

 3.2 获取日期格式

3.2.1 获取当前时间 

import time

t1 = time.asctime()
t2 = time.ctime()
print(t1)
print(t2)

 3.2.2 将元组数据转化为日期

import time

t = (2022,11,18,11,8,30,0,0,0)
print(time.asctime(t))

输出结果:
Mon Nov 18 11:08:30 2022

 3.3 利用索引获取时间信息

import time

print(time.localtime())
t = time.localtime()
year = t[0]
print(year)

四、算术模块 

  4.1 random模块

 伪随机数:计算机中的随机函数是按照一定的算法模拟产生的,其结果是确定的,是可预见的。

随机数种子:随机数种子相同,随机数序列也是相同的。

random.seed(a = None)

random()      #生成范围在【0,1)之间的随机实数

uniform()       #生成指定范围内的随机浮点数

randint(m,n)      #生成指定范围【m,n】内的整数

randrange(a,b,n)        #可以在【a,b)范围内,按n递增的集合中随机选择一个数

getrandbits(k)             #生成k位二进制的随机整数

choice()           #从指定序列中随机选择一个元素

sample()          #能指定每次随机元素的个数

shuffle()        #可以将可变序列中所有元素随机排序

import random
colors = ['red','green','blue','yellow','black']
print(random.choice(colors))
print(random.sample(colors,3))
random.shuffle(colors)
print(colors)

输出结果:
black
['black', 'blue', 'green']
['red', 'blue', 'green', 'yellow', 'black']

五、文件文本读写模块 

5.1 文件的打开

open()函数:

f = open(filename[,mode[,buffering]])

f:open()返回的文件对象

filename:文件的字符串名

mode:可选参数,打开模式和文件类型 

buffering:可选参数,文件的缓冲区,默认为-1

文件的打开模式:

mode第一个字母表明对其的操作:

‘r’:表示读模式

‘w’:表示写模式

'x':表示在文件不存在的情况下新创建并写文件

‘a’:表示在文件末尾追加写内容

'+':表示读写模式

mode第二个字母是文件类型:

‘t’:表示文本类型

‘b’:表示二进制文件

5.2 文件的读写和访问 

文件的写操作:

f.write(str)

f.writelines(strlist):写入字符串列表

文件的读操作:

 f.read()

f.readline():返回一行

f.readlines():返回所有行、列表

f = open('mytxt','w')
f.writelines(['apple\n','orange\n'])
f.close()
f = open('mytxt','r')
print(f.readlines())
f.close()

 文件打开后一定要记得关闭,关闭的作用是终止对外部文件的连接,同时将缓存区的数据刷新到硬盘上。

5.3 结构化文本文件:CSV 

文件读取—reader

re = csv.reader()

接受一个可迭代对象(比如csv文件),能返回一个生成器,可以从其中解析出内容。

文件读取—DictReader

 与reader类似,适用于带有表头的csv文件,返回的每一个单元格都放在一个元组的值内。

文件写操作:
w = csv.writer()

w.writerow(rows)

当文件不存在时,自动生成,支持单行写入和多行写入

字典数据写入:

w = csv.DictWriter()

w.writeheader()

w.writerow(rows)

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

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

相关文章

基于Java+springboot+SSM的医疗报销系统的设计与实现

项目开发工具: IDEA, MYSQL, JDK1.8 项目使用技术: SpringBoot, SSM, H-UI, JSP, JQUERY, HTML 医疗报销系统【功能列表】 【前台用户】登录,注册,首页新闻轮播图,首页新闻按分类展示列表,栏目分类模块,报销流程模块,修改密码,个人信息展示,新增家庭成员, 家庭成品列表展示,…

Spring框架教程

Spring框架教程Spring框架教程1. 前言2. Spring框架概述2.1 什么是spring?2.2 Spring有哪些优点&#xff1f;2.3 Spring 有两个核心部分&#xff1a;IoC 和AOP2.4 Spring 特点2.5 Spring架构图&#xff0c;Spring由哪些模块组成&#xff1f;3. IOC容器3.1 IOC底层原理3.2 什么…

three.js初时基础

第一步&#xff1a;找到Three.js – JavaScript 3D Library (threejs.org) 第二步 第三步: 第四步&#xff1a; 安装依赖 第五步&#xff1a;新建一个项目文件&#xff0c;在文件中npm init 进行初始化出现一个package.json 第六步&#xff1a;配置安装&#x1f680; 快速开…

QtAV环境配置

本文章主要是使用MSVC编译器&#xff0c;因为QtAV是依赖FFmpeg的&#xff0c;所以需要下载QtAV源码和QtAV-depends-windows-x86x64&#xff1b; 官网地址&#xff1a;http://www.qtav.org/ Github 地址&#xff1a;https://github.com/wang-bin/QtAV 1&#xff0c;解压 将文件…

产品生命周期(PLM)发展历程及技术核心分析指导

产品生命周期管理(Product Lifecycle Management&#xff0c;简称PLM)&#xff0c;是一种为企业产品全生命周期提供服务的软件解决方案&#xff0c;可以应用于在单一地点或分散在多个地点的企业内部&#xff0c;以及在产品研发领域&#xff0c;具有协作关系的企业之间&#xff…

windows 锁屏时执行某个程序

目录 前言 1 打开锁屏事件 2 创建任务计划程序 3 测试 前言 以windows10为例&#xff0c;这个功能的核心是使用windows自带的“任务计划程序”&#xff0c;可以帮助您实现触发器操作。 1 打开锁屏事件 默认情况下&#xff0c;锁屏事件并不会被系统记录&#xff0c;需要手动打…

vue3项目的创建、入口文件、全局方法、生命周期函数、setup中的生命周期函数使用、data的函数方式

文章目录1. 创建vue3项目1.1 基于webpack的工程创建1.2 通过vite来创建vue3项目vue3插件推荐1.3 通过npm init vue3创建项目2. vue3入口文件3. vue3中的全局方法修改4. vue3中封装全局方法5. vue3生命周期函数6. setup中生命周期使用7. data函数方式1. 创建vue3项目 1.1 基于w…

Spring Boot中消息是什么?同步异步消息是啥/都包含那些技术?Activate MQ消息怎么整合

写在前面&#xff1a; 继续记录自己的SpringBoot学习之旅&#xff0c;这次是SpringBoot应用相关知识学习记录。若看不懂则建议先看前几篇博客&#xff0c;详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用&#xff01; 3.5.4 消息 3.5.4.1 简述 消息发送方&#xff1a;…

力扣(LeetCode)29. 两数相除(C++)

快速乘 题解只使用了 intintint 。 万恶的 INT_MININT\_MININT_MIN&#xff0c;怎么处理&#xff1f;打不过就加入——被除数和除数转为负数计算 。 xxx 除以 yyy &#xff0c;等于从 xxx 中拿出若干个 yyy 。 从 xxx 中拿出 yyy 的数量&#xff0c;就是 xyx\div yxy 的商。 y…

Allegro差分自动添加回流地孔操作指导

Allegro差分自动添加回流地孔操作指导 Allegro自带给差分添加回流地孔的功能,具体操作如下 点击connect命令,任意拉一对差分 鼠标右击,选择Return Path。。。,选择settings 会弹出设置的对话框,Assign net name给孔分配一个网络,一般是GND, Return Path via 选择添加…

2019年1+X 证书 Web 前端开发中级理论考试题目原题+答案——第五套

&#x1f4da;文章目录 &#x1f3af;关于1X标准 &#x1f3af;关于中级考点 ⏩&#x1f4bb;答案速查 理论题(满分100分)&#xff0c;包括单选题、多选题、判断题。 &#x1f4d1;一、单选题&#xff08;每小题2分&#xff0c;共30小题&#xff0c;共60分&#xff09; &…

Docker的基础命令

1.查找可用的镜像 docker search 镜像名 例&#xff1a;docker search nginxdocker search mysql2.拉取官方镜像&#xff08;及下载镜像&#xff09; docker pull 镜像名:标签例&#xff1a;docker pull nginx #表示现在最新版本的nginx镜像docker pull nginx:1.14…

使用frida发送微信消息给好友

前言 之前说过怎么用python来发送微信文本消息&#xff0c;原理大概就是构造内存机器码。其实frida也可以做类似操作&#xff0c;构造数据和机器码&#xff0c;然后调用。我就不重复操作了&#xff0c;这里说下另一种方法。 想使用frida来发送消息这个想法很早之前就有了&…

SQLlite

SQLlite ​ SQLite是一个软件库&#xff0c;实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。 一、什么是 SQLite ​ SQLite是一个进程内的库&#xff0c;实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库&…

Webpack 5 超详细解读(三)

21.babel-loader 使用 使用babel-loader对js文件进行处理&#xff0c;在lg.Webpack.js配置文件中配置js文件规则。 使用单独的插件进行转换 使用预设进行转换 使用babel.config.js配置文件进行babel配置 const path require(path) const CopyWebpackPlugin require(copy-W…

解决哈希冲突的方案

什么是哈希表 一种实现关联数组抽象数据类型的数据结构&#xff0c;这种结构可以将关键码映射到给定值。简单来说哈希表&#xff08;key-value&#xff09;之间存在一个映射关系&#xff0c;是键值对的关系&#xff0c;一个键对应一个值。 什么是哈希冲突 当两个不同的数经过…

基于 Text-CNN 的情感分析(文本分类)----概念与应用

文章目录基于Text-CNN情感分析卷积的基本概念Text-CNN的核心思想实现数据预处理批量处理操作--填充与截断拆分训练集与测试集定义Text-CNN模型设计模型定义与训练参数训练并评估模型结语基于Text-CNN情感分析 大家都知道&#xff0c;CNN(Convolutional Neural Network) 是深度…

非近轴衍射分束器的设计与严格分析

摘要 直接设计非近轴衍射分束器仍然是很困难的。由于有相对较大的分束角&#xff0c;元件的特征尺寸一般等于或小于工作波长。因此&#xff0c;它通常超出近轴建模方法的范围。在此示例中&#xff0c;将迭代傅里叶变换算法&#xff08;IFTA&#xff09;和薄元件近似&#xff08…

在线的MySQL数据库表结构对比工具

在项目部署上线前&#xff0c;测试版和正式版的数据库表结构做过哪些变更&#xff0c;如果没有做好实时记录&#xff0c;那么就需要对比找出差异&#xff0c;否则代码部分更新后&#xff0c;可能导致功能异常。 数据库表结构对比的工具很多&#xff0c;但是为了方便部署同步的…

Python 算法:线性回归及相关公式推导

0 前言 本文以一个小小的案例展开&#xff0c;主要讲解了线性回归的步骤、常用的两种求最优解的方法&#xff08;最小二乘法和sklearn回归算法及算法原理&#xff09;及相关函数、公式的过程推导。 相关环境&#xff1a;Windows 64位 Python3.9 scikit-learn1.0.2pandas1.4.2…