Python内置模块
一. 内置模块
- _ name_属性(python解释器定义好的内置变量):一个模块被另一个程序第一次引入时,程序将被运行。
①直接运行当前模块时,它的值是" _main _";
②当模块被引用执行时,它的值是“模块文件的名字”或“包.模块名”。(引用模块:将模块在当前脚本中执行。)【name main前后都是两个下划线】
eg:
import 模块
print(name)
print("模块被引用时")
- 当模块被引用执行时,部分功能不执行用if判断来实行。
eg:
if __name__ == '__main__':
print('程序自身在运行')
else:
print('被引用时不执行')
二. 标椎模块(Python 本身带着一些标准的模块库,下列是比较常用的标准库.)
1.sys :用于提供对Python解释器相关的操作
sys.path # 查看以列表显示的搜索路径
sys.version # 查看当前python版本
sys.argv # 命令行参数List
sys.exit(n) # 退出程序,正常退出时exit(0)
2.os :用于提供系统级别的操作,关机,删文件,创建文件,调用系统命令
eg:
#os模块调用系统的功能
os.system("ipconfig")
os.system("mspaint")
os.system("ping 192.168.51.66")
print(os.name)
print(os.environ)
#创建多层目录 mkdir -p
os.makedirs("test\\ || \\taobao")
#只能删空目录
os.removedirs("test\\ || \\taobao")
#创建文件
with open("hello.py","w")as f:
f.writelines(["print('hello')\n","input()"])
#查看文件信息
print los.stat("new_test.py")
#os常用方法
os.name #字符串指示当前使用平台
os.system("command") # 运行系统命令,直接显示
os.environ #获取系统环境变量
#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 #用于分割文件路径的字符串
#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 :时间模块
eg:import time
①时间戳(小数)特(优)点:方便计算机储存,方便运算。
eg:
print(time.time())
②时间元组(命名元组类型)中间形态(作为函数的参数,开发时使用)
eg:
print(time.localtime())
③格式化时间字符串
eg:
print(time.strftime("%d/%m/%Y_%H:%M:%S"))
④时间戳——时间元组——时间字符串
eg:
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(2131421413)))
⑤时间字符串——时间元组——时间戳
eg:
print(time.mktime(time.strptime("2001-9-11 8:30","%Y-%m-%d %H:%M:%S")))
⑥睡眠
eg:
time.sleep(3)
print("hello word")
4.hashlib :用于加密相关的操作,代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法。摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。
注:SHA1的结果是160 bit字节,通常用一个40位的16进制字符串表示。
比SHA1更安全的算法是SHA256和SHA512,不过越安全的算法越慢,而且摘要长度更长。
eg:
import hashlib
md5 = hashlib.md5() #实例化 把类的功能赋值给变量
md5.update('需要加密的字符串')
print(md5.hexdigest() )
5.random :用于随机数
eg:import random
①随机一个整数(包含开始值和结束值)
eg:
print(random.randint(1,43))
②随机一个小数0-1之间的小数
eg:
print(random.random())
③随机范围(含头不含尾,不包含结束值)步长值。
eg:
print(random.randrage(0,10,2))
④随机序列中的某个值
eg:
print(random.choice(["a","1","b","2","c","3"]))
⑤纯数字验证码
eg:
print(random.randint(1000,9999))
⑥大写字母+数字的n位验证码
eg:
def verification_code(n):
code=""
for i in range(n):
num = random.randint(0,9)
if num % 2 == 0
code+=str(random.randint(0,9))
else:
code+=chr(random.randint(65,90))
return code
print(verification_code(4))
6.re :用于正则表达式
7.json :实现数据序列化与反序列化。
序列化:将数据对象转为字符串用于网络数据传输和数据存储。
反序列化:将特定格式字符串转为数据对象的,用于在程序中运行。
eg:
import json
json 格式 字符串:"{key:valuel}
js | python |
---|---|
字符串"" | 字符串""/’’ |
数组[] | 列表、元组 |
对象 | 字典 |
true/false | Ture/False |
– | – |
eg:
dic = {
'name':'z'
'age':29,
'email':'cao@66.com',
'tuple':(1,2,3,4,True,False)
}
json模块中常用的函数和类的功能如下:
json.dump(obj,fp)#将obj对象转换成JSON字符串输出到fp流中,fp是一个支持write()方法的类文件对象。
json.dumps(obj)#将obj对象转换为JSON字符串,并返回该JSON字符串。dumps:导出字符串
json.load(fp)#从fp流读取JSON字符串,将其恢复成JSON对象,其中fp是一个支持 write()方法的类文件对象。
json.loads(s)#将JSON字符串s恢复成Python对象。loads:加载为python对象
data = json.dumps(dic)
print(type(data))
print(data)
with open("my.json","w",encoding="utf-8") as f:
json.dump(dic,f)
with open("my.json","r",encoding="utf-8") as f:
obj = json.load(f)
print(obj["email"])