模块笔记
什么是模块
模块:Python中的模块是一个后缀名为.py文件。可以被别的程序引入,以使用该模块中的函数等功能。
内部包括定义好的函数、变量、类、数据、执行的功能。
模块可分为内置模块、自定义模块、第三方模块。
使用模块
优点:使用模块可以简化开发,减少代码量。
如何使用:使用“import 模块名”或“from 模块名 import 函数名,变量名,类名”。
import sys
print(sys.version)
一个模块只会被导入一次,不管你执行了多少次import
何时使用:实现某个功能时,已经存在模块中直接调用即可,不需要重复造轮子。
执行模块中的函数:手动添加新的模块路径-sys.path.append(‘D:\python\test’)
m1.hello()
print(m1.a+m1.b)
input()
#.pyc是经过编译后的Python文件,加快模块的执行速度。
___name__属性
一个模块被另一个程序第一次引入时,程序将被运行。
用__name__属性来使该程序块仅在该模块自身运行时执行。
name 与 main 底下是双下划线
if name == ‘main’:
print(‘程序自身在运行’)
else:
print(‘我来自另一模块’)
当模块属性没有被调用,函数默认值为mian;被调用后为模块名。
内置模块
import sys
sys:对Python解释器做一些设置,或获取一些解释器信息。
sys.path:path属性,模块路径,list类型可以修改
print(sys.path)
sys.path.append("路径")
dir() 函数:内置的函数 dir() 可以找到模块内定义的所有名称。
#dir()用于查看模块中的所有属性和方法
print(dir(sys))
#以字符串列表的形式返回:
import sys
print(dir(sys))
#显示版本号
print(sys.version)
#获取脚本参数,第一个参数是脚本本身
print(sys.argv)
#终止程序运行
print("aaaaaa")
sys.exit()
print("bbbbbb")
随机数模块
import random
#随机整数方法 包括开始值和结束值
print(random.randint(0,9))
#随机范围方法rangrange(开始值,结束值,步长值)
含头不含尾
print(random.randrange(1,10,2))
#随机小数0~1
print(random.random())
#随机序列的值(字符串、列表、元组、字典、集合)
print(random.choice(['red','black','green']))
例题:
#1.随机一个6位整数验证码
print("".join([str(random.randint(0,9)) for i in range(6)]))
print(random.randint(100000,999999))
#2.随机一个n位数的数字+字母的验证码
def ver_code(n):
code = ""
for i in range(n):
num = random.randint(0,9)
if num % 2 == 0:
code += chr(random.randint(65,90))
else:
code += chr(random.randint(0,9))
return code
print(ver_code(4))
包
包:将有依赖的模块,或者功能相近的模块放到一个文件夹中。目录中存放了一个或多个.py文件。
from p1.m1 import hello,a,b
from p1.m2 import add
引用包中的所有模块
* 所模块 as 起别名
from p1 import m1 as model
model.hello()
print(m2.add(m2.a,m2.b))
input()
Python 本身带着一些标准的模块库
1、sys 用于提供对Python解释器相关的操作
sys.path # 查看以列表显示的搜索路径
sys.version # 查看当前python版本
sys.argv # 命令行参数List
sys.exit(n) # 退出程序,正常退出时exit(0)
2、os 用于提供系统级别的操作,关机,删文件,创建文件,调用系统命令
os.name #字符串指示当前使用平台。win->‘nt’; Linux->‘posix’
os.system(“command”) # 运行系统命令,直接显示
os.environ #获取系统环境变量
《1》os模块文件操作方法
os.getcwd() 获取当前工作目录,即当前脚本工作的目录路径
os.chdir(“dirname”) 改变当前脚本工作目录;相当于shell下cd
os.curdir 返回当前目录: (’.’)
os.pardir 获取当前目录的父目录字符串名:(’…’)
os.makedirs(‘dir1/dir2’) 可生成多层递归目录
os.removedirs(‘dirname1’) 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir(‘dirname’) 生成单级目录;相当于shell中mkdir dirname
os.rmdir(‘dirname’) 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir(‘dirname’) 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove() 删除一个文件
os.rename(“oldname”,“new”) 重命名文件/目录
os.stat(‘path/filename’) 获取文件/目录信息
os.sep 操作系统特定的路径分隔符,win下为"\",Linux下为"/"
os.linesep 当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep 用于分割文件路径的字符串
《2》os模块路径操作方法
os.path.abspath(path) 返回path规范化的绝对路径
os.path.split(path) 将path分割成目录和文件名二元组返回
os.path.dirname(path) 返回path的目录。其实就是os.path.split(path) 的第一个元素
os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path) 如果path是绝对路径,返回True
os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1[, path2[, …]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
3、time模块
3.1时间戳:打印当前的时间戳,方便存储和运算
print(time.time())
格式化的字符串 time.strftime(’%Y-%m-%d’)
3.2时间元组: time.localtime()
locatime([时间戳]) 本地时间
gtime([时间戳]) 格林威治时间
time_up = time.localtime(1000000)
print(time_tup)
#print(time_tup.tm_year-2001)
print(time.gmtime(1000000))
休眠时间: time.sleep(t)
3.3时间格式化字符串 dd/mm/YYYY HH:MM:SS
显示给用户看
time.strftime(格式,[时间元组])
print(time,strftime(%Y-%m-%d %H:%M:%S))
时间格式转化
时间戳 <-> 时间元组 <-> 时间字符串
#案例1 132132141 —> 时间字符串
print(time.strftime(%Y-%m-%d %H:%M:%S,time.localtime(32132141)))
案例2 2008-08-08 08:00:00 —>时间戳
print(time.mktime(time.strptime("2008-08-08 20:00:00 ",%Y-%m-%d %H:%M:%S)))
返回当前系统时间
import datetime
datetime.datetime.now()
4、hashlib 用于加密相关的操作
用于加密相关的操作,代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法
摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串
···越安全的算法越慢,而且摘要长度更长。
加密模块:
import hashlib
md5 = hashlib.md5() #实例化 把类的功能赋值给变量
md5.update(‘需要加密的字符串’)
print(md5.hexdigest() )
安装第三方模块
#安装 --pip install 包名/模块名
#pip install pymyspl
#卸载 --pip uninstall 模块名
#查看所有安装 --pip list
5、random 用于随机数
6、re 用于正则表达式
7、json 用于【字符串】和 【python基本数据类型】 间进行转换