Python全栈自动化测试-Python基础12--模块化

目录

前言

一、模块化使用

    1.模块化简介

    2.模块导入方式

二、标准库使用

    1.time模块

    2.time模块三种时间的转换

    3.datetime模块

    4.datetime截取

    5.datetime之间的转换

    6.calendar模块

总结


前言

本文聚焦Python基础模块,它们是构建程序的基石,让代码结构清晰、执行高效。我们将深入探讨时间模块——datetimetime,它们是时间管理的得力助手,无论是日志追踪、任务调度,还是复杂数据分析,都离不开它们的精准操控。


一、模块化使用

    1.模块化简介

模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。
模块分类:
        1. 标准库(内置模块) --自带
                • time(用于处理日期和时间)、sys(用于操控python运行时的环境)、os(用于与操作系统交互,比如处理文件和目录)、json(用于处理json数据)、random等
        2. 开源模块(第三方库) --下载
                • xlrd,xlwt,openpyxl,flask等
        3. 自定义模块
                • 由编程人员自己写的模块。自定义模块时要注意命名,不能和Python的内置模块名称冲突

    2.模块导入方式

模块导入:当跨模块调用时使用。要先导入模块,对于导入模板的语句一般放在程序前面,且按照Python标准库模块、Python第三方模块、自定义模块的顺序从上到下排开。
模块导入方式:
        1.使用import导入:
                • 导入语法:import 模块名
                • 调用语法:模块名.函数名()
        2.使用from...impor...导入:
                • 导入语法:from 模块名 import 函数名1,函数2.....或者类名
                • 调用语法:函数名1()
        3.from ... import *(不推荐使用)
                • 导入模块的所有函数。
                • 通过这种方式引入的时候,当两个模块中含有相同名称函数的时候,后面一次引入会覆盖前一次引入。

二、标准库使用

    1.time模块

Python编程中经常会用到time和datatime来处理日期和时间
时间的三种表示:
        1. 时间戳 1970年1月1日之后的秒,即:time.time()
        2. 格式化的字符串 2019-11-11 11:11, 即:time.strftime('%Y-%m-%d')
        3. 结构化时间 元组包含了:年、日、星期等... time.struct_time 即:time.localtime()
                time.struct_time(tm_year=2021, tm_mon=5, tm_mday=21, tm_hour=13, tm_min=37,
tm_sec=43, tm_wday=4, tm_yday=141, tm_isdst=0)
年、月、日、时、分、秒、一周的第几日、一年的第几日、夏令时

# 1:获取当前的时间戳
# 导入方式一
import time

print(time.time())
# >>>>>>>>>>>>>>>>>>>>>>>>
# 输出结果:
# 1716188230.1371763
# # 导入方式二
# from time import time
# print(time())
# >>>>>>>>>>>>>>>>>>>>>>>>
# 输出结果:
# 1716188230.1371763

# 2:格式化的字符串
print('字符串时间:', time.strftime('%Y-%m-%d'))
# >>>>>>>>>>>>>>>>>>>>>>>>
# 输出结果:
# 字符串时间: 2024-05-20

print('字符串时间:', time.strftime('%Y-%m-%d %H:%M:%S'))
# >>>>>>>>>>>>>>>>>>>>>>>>
# 输出结果:
# 字符串时间: 2024-05-20 22:00:00

# 3:结构化时间
print('结构化时间:', time.localtime())
# >>>>>>>>>>>>>>>>>>>>>>>>
# 输出结果:
# 结构化时间: time.struct_time(tm_year=2024, tm_mon=5, tm_mday=20, tm_hour=22, tm_min=00, tm_sec=00, tm_wday=0, tm_yday=141, tm_isdst=0)

print('获取年:', time.localtime().tm_year)
# >>>>>>>>>>>>>>>>>>>>>>>>
# 输出结果:获取年: 2024

    2.time模块三种时间的转换

时间戳,格式化字符串和结构化时间互相转换
        1. strftime()/asctime():结构化时间-格式化字符串时间
        2. mktime():结构化时间-时间戳
        3. localtime()/gmtime():时间戳-结构化时间
        4. ctime():时间戳-格式化字符串时间
        5. strpftime():格式化字符串时间-结构化时间

import time

# 结构化时间
t1 = time.localtime()
print('结构化时间-格式化字符串时间1:', time.strftime('%Y-%m-%d', t1))
print('结构化时间-格式化字符串时间2:', time.asctime(t1))
print('结构化时间-时间戳:', time.mktime(t1))
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#输出结果:
# 结构化时间-格式化字符串时间1: 2024-05-20
# 结构化时间-格式化字符串时间2: Mon May 20 15:29:16 2024
# 结构化时间-时间戳: 1716190156.0

# 格式化时间
t2 = time.strftime('%Y-%m-%d')
print('格式化字符串时间-结构化时间:', time.strptime(t2, '%Y-%m-%d'))
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#输出结果:
# 格式化字符串时间-结构化时间: time.struct_time(tm_year=2024, tm_mon=5, tm_mday=20, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=141, tm_isdst=-1)

# 时间戳
t3 = time.time()
print('时间戳-结构化时间1:', time.localtime(t3))
print('时间戳-结构化时间2:', time.gmtime(t3))
print('时间戳-格式化字符串时间:', time.ctime(t3))
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#输出结果:
# 时间戳-结构化时间1: time.struct_time(tm_year=2024, tm_mon=5, tm_mday=20, tm_hour=15, tm_min=29, tm_sec=16, tm_wday=0, tm_yday=141, tm_isdst=0)
# 时间戳-结构化时间2: time.struct_time(tm_year=2024, tm_mon=5, tm_mday=20, tm_hour=7, tm_min=29, tm_sec=16, tm_wday=0, tm_yday=141, tm_isdst=0)
# 时间戳-格式化字符串时间: Mon May 20 15:29:16 2024

    3.datetime模块

datetime模块重新封装了time模块,提供更多接口,提供的类有date,time,datetime,timedelta等。
datetime模块中的datetime类
  1.根据给定的值,创建时间元组:datetime.datime(年、月、日、时、分、秒、微秒)
    dt=datetime.datetime(2018,6,24,16,56,45,13)
  2.获取当前时间,datetime类中的today()或now()方法
    dt=datetime.datetime.today() #获得当前时间datetime,不可以带参数
    dt=datetime.datetime.now() #获得当前时间datetime ,可以带时区

import datetime

t1 = datetime.datetime.today()  # 获得当前时间
print(t1)
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#输出结果:
# 2024-05-20 22:00:00.404865
t2 = datetime.datetime.now()  # 获得当的时间
print(t2)
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#输出结果:
# 2024-05-20 22:00:00.404865

    4.datetime截取

截取时间元组中的部分
dt=datetime.datetime.now()
1. dt.year #年
2. dt.month #月
3. dt.day #日
4. dt.date() #日期
5. dt.time() #时间
6. dt.weekday() #星期
7. dt.isoweekday() #星期
#是否夏令时(1是0不是)

import datetime

dt = datetime.datetime.now()  # 根据给定时间来设置创建时间
print(dt)
#>>>>>>>>>>>>>>>>>>>>>>>>>>>
#输出结果:
# 2024-05-20 15:57:16.645733

# 时间截取,分别截取年、月、日、时、分、秒
year = dt.year
month = dt.month
day = dt.day
hour = dt.hour
minute = dt.minute
second = dt.second
print('{}年{}月{}日{}时{}分{}秒'.format(year, month, day, hour, minute, second))
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#输出结果:
# 2024年5月20日15时52分26秒

    5.datetime之间的转换

1.把datetime转换成时间戳:当前时间.timestamp()
2.把时间戳转换成datetime:datetime.datetime.fromtimestamp(时间戳)
3.按datetime转换成字符串:
        • dt.strftime("%Y-%m-%d") #dt:当前时间,datetime.datetime.today()
        • dt.strftime("%Y-%m-%d %H:%M:%S")
4. 把字符串转换成datetime
        • datetime.datetime.strptime('2015-6-1 18:19:59.10','%Y-%m-%d %H:%M:%S.%f')

import datetime
import time

# 1:把datetime转成时间戳
t1 = datetime.datetime.now()  # 当前时间
print(t1.timestamp())
#>>>>>>>>>>>>>>>>>>>>>>>>>
# 1716192758.369642

# 2:把时间戳转换成datetime
t2 = time.time()  # 时间戳
print(datetime.datetime.fromtimestamp(t2))
#>>>>>>>>>>>>>>>>>>>>>>>>>
# 2024-05-20 22:00:00.369642

# 3:把datetime转成字符串
t3 = datetime.datetime.now()  # 当前时间
print(t3.strftime('%Y-%m-%d %H:%M:%S'))
print(t3.strftime('%Y-%m-%d'))
#>>>>>>>>>>>>>>>>>>>>>>>>>
# 2024-05-20 22:00:00
# 2024-05-20

# 4:把字符转成datetime
t4 = datetime.datetime.strptime('2015-6-1 18:19:59', '%Y-%m-%d %H:%M:%S')
print(t4)
#>>>>>>>>>>>>>>>>>>>>>>>>>
# 2015-06-01 18:19:59

    6.calendar模块

导入calendar模块
1. 获取年历:calendar.calendar(2019)
2. 获取某年某月的日历:calendar.month(2019,12)
3. 是否闰年:calendar.isleap(2019)

import calendar

# 1:获取年历
c1 = calendar.calendar(2024)
print(c1)
#>>>>>>>>>>>>>>>>>>>>>>>>
#                                   2024
#
#       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  3  4  5  6  7                1  2  3  4                   1  2  3
#  8  9 10 11 12 13 14       5  6  7  8  9 10 11       4  5  6  7  8  9 10
# 15 16 17 18 19 20 21      12 13 14 15 16 17 18      11 12 13 14 15 16 17
# 22 23 24 25 26 27 28      19 20 21 22 23 24 25      18 19 20 21 22 23 24
# 29 30 31                  26 27 28 29               25 26 27 28 29 30 31
#。。。。。。。。。。

# 2:获取某年某月的日历
c2 = calendar.month(2024, 5)
print(c2)
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#       May 2024
# 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 31

# 3:是否闰年
c3 = calendar.isleap(2024)
print(c3)
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>
# True

    7.自定义模块化使用

案例
1. 在demo1.py文件中定义1个函数,函数自定义。
2. 在demo2.py文件中引入demo模块,再调用定义的函数
注意:模块名的命名规范要符合标识符规范,多重目录用点分隔

​​​​​​​


总结

通过本文的介绍,我们深入了解了Python的基础模块和时间模块。这些模块不仅功能强大,而且易于使用,为开发者提供了极大的便利。无论是数据处理、文件操作还是时间管理,Python的模块库都能为我们提供强大的支持。

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值