• Python之基本扩展模块


    一、datetime模块

    1.1 主要的模块 

    datetime.date()    #处理日期(年、月、日)
    datetime.time()    #处理时间(时、分、秒和毫秒)
    datetime.datetime()    #处理日期+时间
    datetime.timedelta()     #处理时段(时间间隔)
    1. #获取今天的时间
    2. print(datetime.date.today())
    3. print(datetime.datetime.now())
    4. print(datetime.date.today().strftime("%Y-%m-%d %H-%M-%S"))
    5. print(datetime.datetime.now().isoformat())

      1.2 时间戳 

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

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

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

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

    1. import datetime,time
    2. today = datetime.date.today()
    3. print(today.timetuple())
    4. print(time.mktime(today.timetuple()))
    5. print(datetime.date.fromtimestamp(1668614400.0))

    1.2.2 时间上的加减法 

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

    1. import datetime
    2. today = datetime.datetime.now()
    3. print(today)
    4. yesterday = today - datetime.timedelta(days=1)
    5. print(yesterday)
    6. hours = today - datetime.timedelta(hours=1)
    7. print(hours)

    二、Calendar模块 

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

    2.1 常用函数

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

    输出结果展示: 

    1. E:\ProgramData\Anaconda3\python.exe C:/Users/dl/PycharmProjects/MyProjects/1.py
    2. November 2022
    3. Mo Tu We Th Fr Sa Su
    4. 1 2 3 4 5 6
    5. 7 8 9 10 11 12 13
    6. 14 15 16 17 18 19 20
    7. 21 22 23 24 25 26 27
    8. 28 29 30
    9. 2022
    10. January February March
    11. Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
    12. 1 2 1 2 3 4 5 6 1 2 3 4 5 6
    13. 3 4 5 6 7 8 9 7 8 9 10 11 12 13 7 8 9 10 11 12 13
    14. 10 11 12 13 14 15 16 14 15 16 17 18 19 20 14 15 16 17 18 19 20
    15. 17 18 19 20 21 22 23 21 22 23 24 25 26 27 21 22 23 24 25 26 27
    16. 24 25 26 27 28 29 30 28 28 29 30 31
    17. 31
    18. April May June
    19. Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
    20. 1 2 3 1 1 2 3 4 5
    21. 4 5 6 7 8 9 10 2 3 4 5 6 7 8 6 7 8 9 10 11 12
    22. 11 12 13 14 15 16 17 9 10 11 12 13 14 15 13 14 15 16 17 18 19
    23. 18 19 20 21 22 23 24 16 17 18 19 20 21 22 20 21 22 23 24 25 26
    24. 25 26 27 28 29 30 23 24 25 26 27 28 29 27 28 29 30
    25. 30 31
    26. July August September
    27. Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
    28. 1 2 3 1 2 3 4 5 6 7 1 2 3 4
    29. 4 5 6 7 8 9 10 8 9 10 11 12 13 14 5 6 7 8 9 10 11
    30. 11 12 13 14 15 16 17 15 16 17 18 19 20 21 12 13 14 15 16 17 18
    31. 18 19 20 21 22 23 24 22 23 24 25 26 27 28 19 20 21 22 23 24 25
    32. 25 26 27 28 29 30 31 29 30 31 26 27 28 29 30
    33. October November December
    34. Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
    35. 1 2 1 2 3 4 5 6 1 2 3 4
    36. 3 4 5 6 7 8 9 7 8 9 10 11 12 13 5 6 7 8 9 10 11
    37. 10 11 12 13 14 15 16 14 15 16 17 18 19 20 12 13 14 15 16 17 18
    38. 17 18 19 20 21 22 23 21 22 23 24 25 26 27 19 20 21 22 23 24 25
    39. 24 25 26 27 28 29 30 28 29 30 26 27 28 29 30 31

    2.2 将日历列表化 

    calendar.monthcalendar()

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

    1. import calendar
    2. print(calendar.monthcalendar(2022,11))
    3. 输出结果:
    4. [[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(<年>)
    
    1. import calendar
    2. print(calendar.isleap(2022))
    3. print(calendar.isleap(2000))
    4. 输出结果:
    5. False
    6. True

      2.4 判断月数和周几

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

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

    1. import calendar
    2. print(calendar.monthrange(2022,11))
    3. print(calendar.weekday(2022,11,18))
    4. 输出结果:
    5. (1, 30)
    6. 4

    三、time模块 

    3.1 获取时间戳 

    time.time() 方法

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

    1. import time
    2. t1 = time.time()
    3. a = 0
    4. for i in range(10000):
    5. a += i
    6. print(a)
    7. t2 = time.time()
    8. print(t2-t1)

     3.2 获取日期格式

    3.2.1 获取当前时间 

    1. import time
    2. t1 = time.asctime()
    3. t2 = time.ctime()
    4. print(t1)
    5. print(t2)

     3.2.2 将元组数据转化为日期

    1. import time
    2. t = (2022,11,18,11,8,30,0,0,0)
    3. print(time.asctime(t))
    4. 输出结果:
    5. Mon Nov 18 11:08:30 2022

     3.3 利用索引获取时间信息

    1. import time
    2. print(time.localtime())
    3. t = time.localtime()
    4. year = t[0]
    5. 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()        #可以将可变序列中所有元素随机排序

    1. import random
    2. colors = ['red','green','blue','yellow','black']
    3. print(random.choice(colors))
    4. print(random.sample(colors,3))
    5. random.shuffle(colors)
    6. print(colors)
    7. 输出结果:
    8. black
    9. ['black', 'blue', 'green']
    10. ['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():返回所有行、列表

    1. f = open('mytxt','w')
    2. f.writelines(['apple\n','orange\n'])
    3. f.close()
    4. f = open('mytxt','r')
    5. print(f.readlines())
    6. 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)

  • 相关阅读:
    Nginx七层负载均衡之动静分离
    视觉神经网络的工作机理,计算机视觉和神经网络
    手动实现第一个Servlet程序
    现代循环神经网络 - LSTM
    【笔记】电商RFM模型
    南大通用数据库-Gbase-8a-学习-25-常用系统表查询语句
    Linux CPU之mpstat
    【Linux】 df命令使用
    基于SpringBoot的网上订餐系统
    在vue项目中使用TS
  • 原文地址:https://blog.csdn.net/m0_51769031/article/details/127900008