210204常用模块

210204常用模块

1,工作中常用模块

1)os模块 -->文件操作系统(主要提供文件和文件夹相关操作)
例如 os.listdir() -->返回指定目录项所有的文件名
2)sys模块 -->系统相关操作
例如 exit() 退出程序
3)json模块 -->json数据的数据处理
4)re模块 -->正则表达式相关操作
5)math模块 -->数学相关的
math.ceil() -->向大取整
6) *cmath模块 -->复数的数学模块
complex -->复数对应的类型
7) 时间相关模块:time datetime
8) hashlib -->生成哈希摘要 加密
9) csv文件操作 -->表格文件操作,爬虫相关

import sys
import math
print(int(12.9))  # 12 直接去掉小数点
print(math.ceil(12.1))  # 13 向大取整
print(math.floor(12.9))  # 12 向小取整
print(round(12.6))   # 13 四舍五入

Python可以直接对复数进行运算

a = 10 + 2j
print(type(a))  # <class 'complex'>
b = 30 - 3j
print(a + b)  # (40-1j)
print(a * b)  # (306+30j)
2,生活中的使用库和模块

1)turtle -->画图
2)pygame(第三方库) -->游戏开发
3)itchat(第三方库) -->微信机器人
4)smtplib和email 邮件自动发送和接收,后端开发常用
5)reportlab(第三方) -->pdf文档操作,添加水印
6)canvas -->创建pdf水印
7)vim -->编辑器之神
8)random -->随机函数

3,模块用法
  • hash加密
    1)hash加密的密文摘要是不可逆的
    密码忘记后,只能重置密码,系统无法还原之前的密码
    2)相同的数据通过相同的算法生成的密文摘要是一样的
    3)不同大小的数据通过相同的算法生成的密文摘要长度是一样的
    4)作用:
    a:适用于传输大的数据包,为了保证数据完整性,先生成摘要,再发数据包,
    再通过对比数据包,可以防止数据包在发送过程中被篡改或丢失
    b:生成密文摘要

    生成hash摘要
    1)创建hash对象
    语法:
    hashlib.算法名()
    hash相关算法:
    md5 -->生成的摘要存储时占CPU小
    sha相关 -->占CPU大,更安全
    2)添加原数据

    第一步:创建hash对象
    import hashlib
    hash = hashlib.md5()
    第二步:hash对象.update(二进制数据)
    hash.update(‘123456’.encode())
    第三步:获取摘要
    hash对象.
    result = hash.hexdigest() # 拿到16进制的密文
    print(result)
    生成密码123456对应的密文:
    e10adc3949ba59abbe56e057f20f883e

  • time模块

    1) 时间戳
    某一个时间到格林威治时间(1970年1月1日0时0分0秒)的时间差来表示一个时间(单位:秒)
    语法:
    time() -->获取当前时间
    优点:方便加密
    占用CPU小(同一个时间时间戳保存4个字节,
    用字符串表示,需要17个字节)

    # 获取当前时间
    import time
    t1 = time.time()
    print(t1)  # 1612421048.7370002  ==  ’2021-02-04 14:44:10'
    

    2)localtime() ->获取当前本地时间,返回结构体时间(其中tm_wday表示星期值,范围0~6)

    localtime(时间戳) ->将时间戳对应的时间转换成本地的结构体时间

    t2 = time.localtime()
    print(t2, t2.tm_year)
    t3 = time.localtime(1612421538.5430157)
    print(t3)
    
  • datetime模块

    1)获取当前日期

    2)获取当前具体时间

    3)时间的加减操作

    import datetime
    t4 = datetime.date.today()
    print(t4, t4.year, t4.month)  # 2021-02-04 2021 2
    
    t5 = datetime.datetime.now()
    print(t5, t5.year, t5.day, t5.hour)
    # 2021-02-04 15:04:18.525196 2021 4 15
    
    # 让时间t5减10天
    value = datetime.timedelta(days=10)
    print(t5-value)  # 2021-01-25 15:08:29.631558
    
    # 时间相加
    value = datetime.timedelta(days=30, hours=2)
    print(t5+value)  # 2021-03-06 17:11:02.481301
    
4,数据持久化(数据本地化)

**注意:**在默认情况下程序中所有数据都是保存在运行内存中的,
运行结束后会自动销毁;只有将数据存储在硬盘中,才会一直存在。
数据只有通过文件才能存储到硬盘里
常见的文件:
数据库文件、 plist文件、json文件、txt文件、2进制文件(非文本文件)

文件操作 ->操作文件中的内容
步骤:打开文件->操作文件(读、写)->关闭文件
1)打开文件
open()函数 ->打开文件并返回一个文件对象
相关参数:
file ->需要打开的文件在计算机的路径地址
-> 绝对路径:文件或文件夹在计算机中的全路径(一般不用)
-> 相对路径:只写全路径的一部分,剩下部分用特殊符号代替
. ->用1个点来表示当前目录(当前代码文件所在的目录),可省略
… ->用2个点来表示当前目录的上层目录
… ->用3个点来表示当前目录的上层目录的上层目录

r语法

str1 = '\tabc\n12\"3'
print(str1)
'''
   abc
12"3
'''
str2 = r'\tabc\n12\"3'
print(str2)  # \tabc\n12\"3

2) mode ->文件打开方式(决定打开后的读或写问题,以及操作文件对应的数据类型)
第一组值:决定打开后的读或写问题;默认r只读
r ->只读
w ->只写(打开后清空原文件内容)
a ->只写(打开后保留原文件内容)
第二组值:决定操作文件数据时对应的数据类型
t ->字符串:对应文本数据 str(默认)
b ->二进制:对应音视频数据 bytes
两组数据中每组必选一个值:不选默认‘tr’
打开二进制文件必须带b

w 和a 打开不存在的文件时,直接新建此名字的文件

3) encoding ->设置文本文件的编码方式,一般设置成encoding=‘utf-8’
打开方式t 需要设置encoding
打开方式b 不能设置encoding

4)读写文件
文件对象.seek(0)
将读写位置设置到文件开头,这样每次读完后会回到文件开头再读

  • 读:
    方法一
    文件对象.read() ->从读的位置开始读到文件结束
    方法二
    文件对象.readline() ->从读写位置开始读一行

  • 写:
    语法:
    文件对象.write(数据)

5)关闭文件
文件对象.close()

6) 二进制和字符串转换

  • 字符串转二进制
    方法一 后面必须加 encoding=‘utf-8’
    bytes(字符串)
    方法二
    字符串.encode()

    result = bytes('护士', encoding='utf-8')
    print(result)  # b'\xe6\x8a\xa4\xe5\xa3\xab'
    result = '护士'.encode()
    print(result)  # b'\xe6\x8a\xa4\xe5\xa3\xab'
    
  • 二进制转字符串
    方法一
    str(二进制,encoding=‘utf-8’)
    方法二
    二进制.encode()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值