找回密码
 立即注册
杭州6期1—何茹 +好友
这个人很懒什么都没写
听众
2
主题
19
金钱
236
个人名片
粉丝关注
还没有人关注TA
添加表情

python中的模块

已有 141 次阅读2021-5-5 00:21

一、模块的定义

Python 模块,是一个Python文件,以.py 结尾,包含了Python 对象定义和Python语句

模块让你能够有逻辑地组织你的Python代码段。把相关的代码分配到一个模块里能让你的代码更好用,更易懂。模块能定义函数,类和变量,模块里也能包含可执行的代码。


二、模块的导入

1、import语句

模块定义好后,可以使用 import 语句来引入模块。语法import 模块名
比如要引用模块 time,就可以在文件最开始的地方用 import time 来引入在调用time模块中的函数时,必须这样引用:模块名.函数名(如:time.sleep(2))

:一个模块只会被导入一次,不管你执行了多少次import,这样可以防止导入模块被一遍又一遍地执行


2、from....import * 语句

提供了一个简单的方法来导入一个模块中的所有项目 ,例如我们想一次性引入time模块中所有的东西
语法:导入time模块中的所有类、函数、变量,from time import *


3、from....import....语句

Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中
 

模块导入方法一



模块导入方法二:

from 包名.模块名称 import +指定的类、函数、方法(指定具体的一个类或方法)
bb模块  form  aa模块
def dcs():
print("杭州")
from mulu.bao.aa import *
dcs()

 模块导入方法三:from 包名.模块名称 import +*( * 星号所有的意思)
(1)不使用*情况,bb文件中同时有多个函数,在aa文件调用函数无法运行
(2)bb文件使用 * 能调用aa文件可以全部函数,*表示能导入bb模块中的所有
(3)使用别名去读取,格式from模式名import函数名as别名
from mulu.bao.aa import hz as s
s()



三、python中time模块

time模块中常见的方法:
time() #1970到现在的经过的秒数
ctime() #固定格式的当前时间
sleep(3) #休眠 单位是秒
asctime() #转换为asc码显示当前时间
strftime() #时间格式化

场景一:
import time
print(time.time())

场景二:
from time import*
print(time())

场景三:
import time
print(“杭州多测师”)
time.sleep(3)
print("杭州多测师)


场景四:
from time import*
print("杭州多测师")
sleep(3)
print("多测师")


场景五:

from time import*
print(strftime("%H-%M-%S,%Y-%m-%d"))

                  时分秒都是大写     年大写,月日小写


场景六:
impot time
print(time.strftime("%H-%M-%S,%Y-%m-%d"))


四、python中的random模块

生成随机浮点数、整数、字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据等 

random模块中常见的方法:

random.random() #该方法是生成0-1之间的浮点数,但是能取到0,但是取不到1
random.randint(x,y) #该方法生成指定范围内整数,包括开始和结束值
random只取一个值,返回指定递增基数集合中的一个随机数,基数默认为1
randrange只取一个值,返回指定递增基数中的一个随机数,基数默认为1
random.randrange(x,y,step) #生成指定范围内的奇数,不包括结束值
random.randrange(x,y,step) #生成指定范围内的偶数,不包括结束值
sample列表中随机取自己定义的个数的值
random.sample(seq,n) #从序列seq中选择n个随机且独立的元素
random.choice(test) #生成随机字符
random.shuffle(list) #洗牌(随机数列)
hashlib.md5() #MD5加密


五、string模块

场景一、
digits生成0-9的整数
import string
print(string.digit)

场景二、
hexdigits生成0-9的整数+大小写的a-f和A-F
import string
x=string.hexdigits
print(x)

场景三
ascii_uppercase 生成26个大写字母
import string
print(string.ascii_uppercase)

场景四
ascii-lowercase
print(string.ascii_lowercase)

不同的导入方法也可以
from string import*
print(digits)

六、加密算法
MD5 ,RSA,AES,DES,BASE
MD5 定义:md5,是一种算法.可以将一个字符串,或文件,或压缩包,执行md5后,就可以生成一个固定长度为128bit的串,这个串,基本上是唯一的,由因为MD5模块在python3中被移除,在python3中使用hashlib模块进行md5操作

Hash:译做“散列”,也有直接音译为“哈希”的。把任意长度的输入,通过某种hash算法,变换成固定长度的输出,该输出就是散列值,也称摘要值。该算法就是哈希函数,也称摘要函数。
hash.digest() 返回摘要,作为二进制数据字符串值,
hash.hexdigest() 返回摘要,作为十六进制数据字符串值,
hash.copy() 复制
hashlib主要提供字符加密功能,将md5和sha模块整合到了一起;
支持md5,sha1, sha224, sha256, sha384, sha512等算法。

RSA:以64位为分组对数据加密,加密和解密用的是同一个算法.

AES Rijndael:加密法对称密钥加密中最流行的算法之一 (AES为分组密码)。

DES :算法为密码体制中的对称密码体制,(DES以64位为分组对数据加密,加密和解密用的是同一个算法.)

BASE:base64 编码常见的加密方法,Base64编码是一种用64个字符来表示任意二进制数据的方法,base64是python内置的模块可以直接进行base64的编码和解码

SHA1算法更安全点,它的结果是20字节长度,通常用一个40位的16进制字符串表示。而比SHA1更安全的算法是SHA256和SHA512等等,不过越安全的算法越慢,并且摘要长度更长。


七、python中os模块

os模块提供了多数操作系统的功能接口函数。当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件、目录打交道,所以离不了os模块。 

os模块中常见的方法:
os.getcwd()获取当前执行命令所在目录
os.path.isfile()判断是否文件
os.path.isdir() #判断是否是目录
os.path.exists() #判断文件或目录是否存在
os.listdir(dirname) #列出指定目录下的目录或文件
os.path.split(name) #分割文件名与目录
os.path.join(path,name) #连接目录与文件名或目录
os.mkdir(dir) #创建一个目录
os.rename(old,new) #更改目录名称
import os
print(os.getcwd())
import os
a=r"E:\第二月课程\第二个月软件包\python\python文件\kenengyaoshanchu\mulu\bao\bb.py"
print(os.path.isfile(a))
import os
a=r"E:\第二月课程\第二个月软件包\python\python文件\kenengyaoshanchu\mulu\bao\bb.py"
b=r"E:\第二月课程\第二个月软件包\python\python文件\kenengyaoshanchu\mulu\bao\aa.py"
print(os.path.join(a,b))
import os
c=r"E:\第二月课程\第二个月软件包\python\python文件\kenengyaoshanchu\mulu\bao\aa.py"
if not os.path.exists(c):
    os.mkdir(c)
import os
os.mkdir("E:\第二月课程\第二个月软件包\python\python文件\ss,755")



八、python中re正则模块

实现一个编译查找,一般在日志处理或者文件处理时用的比较多正则表达式主要用于模式匹配和替换工作
正则表达式是一种对字符和特殊字符操作的一种逻辑公式,从特定的字符中,用正则表达字符串来过滤的逻辑。
基本介绍:
(1)正则表达式是一种文本模式;
(2)帮助我们检查字符是否与某种模式匹配
(3)re模块使python语言拥有全部的真正表达式功能

正则表达式作用
(1)快速高效的查找和分析字符串 比对字符,也叫模式匹配;具有查找,比对,匹配,替换,插入,添加,删除等能力
案例一:把一个字符中的所有数字匹配出来,\d findall
import re
s="abdefghigklmnopq"
v=re.findall("a",s)
print("".join(v))
案例二:编写爬虫收集数据,首先得到网页源码,(比如html),要提取有效数据(比如img字符),使用正则匹配出来;
(2)实现一个编译查找,一般在日志处理文件处理时用的多


re模块相关函数
1、match
从第一个字符开始匹配,如果第一个字符不是要匹配的类型、则匹配失败并报错
注意:如果规则带了'+',则匹配1次或者多次,无'+'只匹配一次
2、search
从第一个字符开始查找、一找到就返回第一个字符串,找到就不往下找,找不到则报错
3、findall
从第一个字符开始查找,找到全部相关匹配为止,找不到返回一个列表[]
4、compile
编译模式生成对象,找到全部相关匹配为止,找不到返回一个列表[]


Python中常见的模块
time模块
random模块
hashlib模块
os模块
string模块
xlrd模块
json模块
sys模块

re模块
场景一
import re
b=re.findall("c","bmcmsd1233")
print(b)findall查找字符不存在,返回空列表
 import re
a="abcdef$1gadb2vfhge"
b=re.findall("x",a)
print(b)
print("".join(b))

场景二:math 匹配开头
import re
m1=re.match("good","hello good 123 good")
print(m1)


场景三、search匹配第一个
import re
m2 = re.search("good","good 123 good")
print(m2.span())
场景四、fullmatch完整匹配
import re
m4=re.fullmatch("hello word","hello word")
print(m4.span())
 fullmath 匹配字符不是整体,返回的结果是none

使用字符 .* 所用 ,h.*d
finditer 返回的结果是一个迭代对象,可迭代对象里的数据是匹配到的所有结果,是一个re.Match对象



认识我们正则表达式中特殊元素
预定义字符集匹配:
\d:数字0-9
\D:非数字
\s:空白字符
\n:换行符
\r:回车符
\w 匹配字母数字
\W 匹配非字母数字
import re
a="1!2!3!4asdf567"
yy =re.findall("\d",a)
print(yy)


re模块数量词匹配
符号^:表示的匹配字符以什么开头
符号$:表示的匹配字符以什么结尾
符号*:匹配*前面的字符0次或n次
eg:ab* 能匹配a 匹配ab 匹配abb
符号+:匹配+前面的字符1次或n次
符号?:匹配?前面的字符0次或1次
符号{m}:匹配前一个字符m次
符号{m,n}:匹配前一个字符m到n次(包括n次),m或n可以省略,mn都是
正整数

场景一:符合^:表示的匹配字符以什么开头
import re
a="added"
c=re.match("^a",a)
print(c)

场景二符合$表示匹配字符以什么结尾
import re
a="abcd123"
c=re.search("1$",a)
print(c)
场景三:符号*:匹配前面的字符0次或n次
import re
n="andnmaababxaabcddd12axxxxx34nnabcmmaxxxxbcde"
m=re.findall("ax",n)
print(m)
import re
print(re.search("a*","aaaacs").group())

场景四:符合+: 匹配+前面的字符1次或n次
import re
print(re.findall("ab+","abdfdf"))

场景五、符合?:匹配?前面的字符0次或1次
import re
n="andnmaababxaabcddd12axxxxx34nnabbcmmaxxxxbcde"
m=re.findall("abc?",n)
print(m)

场景六:符号{m}:匹配前一个字符m次


场景七:符号{m,n}:匹配前一个字符m到n次(包括n次),m或n可以省略,mn都是

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册