python内置常用模块

1.time模块

 1 import time
 2 #时间戳
 3 print(time.time())
 4 #时间结构
 5 print(time.localtime())#本地时间
 6 print(time.gmtime())#世界时间
 7 #字符串时间
 8 print(time.asctime())
 9 # 直接显示字符串时间
10 import datetime
11 print(datetime.datetime.now())
12 #结构时间转化为自定义字符串时间
13 print(time.strftime("%Y-%m-%d %X",time.localtime()))
14 #字符串时间转化为结构时间
15 print(time.strptime("2019-12-12 15:15:15","%Y-%m-%d %X"))
16 #结构时间转化为时间戳
17 print(time.mktime(time.localtime()))
18 结果:
19 时间戳:1544097660.9399388
20 时间结构:本地——>time.struct_time(tm_year=2018, tm_mon=12, tm_mday=6, tm_hour=20, tm_min=1, tm_sec=0, tm_wday=3, tm_yday=340, tm_isdst=0)
21 世界时间——>time.struct_time(tm_year=2018, tm_mon=12, tm_mday=6, tm_hour=12, tm_min=1, tm_sec=0, tm_wday=3, tm_yday=340, tm_isdst=0)
22 字符串时间:Thu Dec  6 20:01:00 2018
23 直接显示字符串时间:2018-12-06 20:01:00.941933
24 结构时间转化为自定义字符串时间:2018-12-06 20:01:00
25 字符串时间转化为结构时间:time.struct_time(tm_year=2019, tm_mon=12, tm_mday=12, tm_hour=15, tm_min=15, tm_sec=15, tm_wday=3, tm_yday=346, tm_isdst=-1)
26 结构时间转化为时间戳:1544097660.0
time

 2.random模块

 1 import random
 2 #(0,1)随机浮点数
 3 res = random.random()
 4 print(res)
 5 #[1,2]指定范围的随机浮点数
 6 res = random.uniform(1,2)
 7 print(res)
 8 #[1,2]随机整形
 9 res = random.randint(1,2)
10 print(res)
11 #[1,2)随机整形
12 res = random.randrange(1,2)
13 print(res)
14 #列表中的元素随机取一个值
15 res = random.choice([11,22,33,44,55])
16 print(res)
17 #列表中的元素随机取几个值
18 res = random.sample([11,22,33,44,55],3)
19 print(res)
random

3.os模块

 1 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
 2 os.chdir("dirname")  改变当前脚本工作目录;相当于shell下cd
 3 os.curdir  返回当前目录: ('.')
 4 os.pardir  获取当前目录的父目录字符串名:('..')
 5 os.makedirs('dirname1/dirname2')    可生成多层递归目录
 6 os.removedirs('dirname1')    若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
 7 os.mkdir('dirname')    生成单级目录;相当于shell中mkdir dirname
 8 os.rmdir('dirname')    删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
 9 os.listdir('dirname')    列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
10 os.remove()  删除一个文件
11 os.rename("oldname","newname")  重命名文件/目录
12 os.stat('path/filename')  获取文件/目录信息
13 os.sep    输出操作系统特定的路径分隔符,win下为"\",Linux下为"/"
14 os.linesep    输出当前平台使用的行终止符,win下为"	
",Linux下为"
"
15 os.pathsep    输出用于分割文件路径的字符串 win下为;,Linux下为:
16 os.name    输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
17 os.system("bash command")  运行shell命令,直接显示
18 os.environ  获取系统环境变量
19 os.path.abspath(path)  返回path规范化的绝对路径
20 os.path.split(path)  将path分割成目录和文件名二元组返回
21 os.path.dirname(path)  返回path的目录。其实就是os.path.split(path)的第一个元素
22 os.path.basename(path)  返回path最后的文件名。如何path以/或结尾,那么就会返回空值。即os.path.split(path)的第二个元素
23 os.path.exists(path)  如果path存在,返回True;如果path不存在,返回False
24 os.path.isabs(path)  如果path是绝对路径,返回True
25 os.path.isfile(path)  如果path是一个存在的文件,返回True。否则返回False
26 os.path.isdir(path)  如果path是一个存在的目录,则返回True。否则返回False
27 os.path.join(path1[, path2[, ...]])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
28 os.path.getatime(path)  返回path所指向的文件或者目录的最后存取时间
29 os.path.getmtime(path)  返回path所指向的文件或者目录的最后修改时间
os

4.sys模块

1 import time
2 import sys
3 # sys.argv   在python解释器上执行py文件时直接输入参数可以用列表方式取值
4 
5 for i in range(0,10):
6     sys.stdout.write("#")#不是直接显示,先放在缓存,放完之后显示
7     time.sleep(0.1)
8     sys.stdout.flush()#刷新缓存
9 print(sys.exit(1))#返回0时表示文件正常结
sys

5.json模块

 1 import json
 2 dic = {"name":"ailadi"}
 3 f = open("new.txt","w")
 4 dic=json.dumps(dic)
 5 f.write(dic)    #将数据转化为字符串模式——————>   s = json.dump(dic,f)    只适用于文件
 6 
 7 f = open("new.txt","r")
 8 s = f.read()
 9 s = json.loads(s)    #将读出的数据提取格式  ————>  s = json.load(f)    只适用于文件
10 print(type(s))
json

6.pickle模块

 1 """以字节的方式读写,支持类和函数"""
 2 dic = {"name":"ailadi"}
 3 import pickle
 4 with open("new_pickle","wb") as f:
 5     dic = pickle.dumps(dic)
 6     f.write(dic)     #------->pickle.dump(dic,f)
 7 with open("new_pickle","rb") as f:
 8     s = f.read()
 9     print(s)
10     s = pickle.loads(s)    #----->s = pickle.load(f)
11     print(s)
pickle

7.shelve模块

 1 """存取字典"""
 2 import shelve
 3 f = shelve.open(r"shelve.txt")
 4 
 5 #
 6 # f["name"] = "ailadi"
 7 # f.close()
 8 
 9 #
10 # print(f["name"])
11 # f.close()
shelve

8.XML模块

 1 """
 2 XML
 3 teg:对象
 4 attrib:属性
 5 text:内容
 6 """
 7 #遍历
 8 import xml.etree.ElementTree as ET
 9 tree = ET.parse("xml_text")
10 root = tree.getroot()
11 for i in root:
12     print(i.tag)  #查看根节点的对象
13     print(i.attrib)  #查看根节点的对象属性
14     print(i.text)  #查看根节点的对象内容
15     for j in i:
16         print(j.tag)  #查看对象中的对象
17         print(j.attrib)  #查看属性
18         print(j.text)  #查看内容
19 
20 
21 #只遍历yesr节点
22 import xml.etree.ElementTree as ET
23 tree = ET.parse("xml_text")
24 root = tree.getroot()
25 for i in root.iter("year"):
26     print(i.attrib,i.text)
27 
28 #修改
29 import xml.etree.ElementTree as ET
30 tree = ET.parse("xml_text")
31 root = tree.getroot()
32 for i in root.iter("year"):  #在内存中修改
33     i.text = "2018"
34     i.attrib = {"updated":"no"}
35 tree.write("xml_text")  #写入硬盘
36 
37 #删除
38 import xml.etree.ElementTree as ET
39 tree = ET.parse("xml_text")
40 root = tree.getroot()
41 for country in root.findall("country"):
42     ret = int(country.find('year').text)
43     print(ret)
44     if ret == 2019:
45         root.remove(country)
46 tree.write("xxxxxxxxxxxxxxxxxx")
47 
48 
49 
50 import xml.etree.ElementTree as ET
51 
52 new_xml = ET.Element("namelist")  #创建根节点
53 
54 name = ET.SubElement(new_xml, "name", attrib={"enrolled": "yes"})  #在根节点下创建子节点
55 age = ET.SubElement(name, "age", attrib={"checked": "no"})  #在子节点下创建
56 sex = ET.SubElement(name, "sex")
57 age.text = "18"  #进行文本赋值
58 sex.text = '33'
59 name2 = ET.SubElement(new_xml, "name", attrib={"enrolled": "no"})
60 age = ET.SubElement(name2, "age")
61 age.text = '19'
62 
63 et = ET.ElementTree(new_xml)  # 生成文档对象
64 et.write("test.xml", encoding="utf-8", xml_declaration=True)
65 
66 ET.dump(new_xml)  # 打印生成的格式
XML

9.re模块

元字符之. ^ $ * + ? { }

. ^ $ * + ? { }

元字符之字符集[]:

 1 ret=re.findall('a[bc]d','acd')
 2 print(ret)#['acd']
 3  
 4 ret=re.findall('[a-z]','acd')
 5 print(ret)#['a', 'c', 'd']
 6  
 7 ret=re.findall('[.*+]','a.cd+')
 8 print(ret)#['.', '+']
 9  
10 #在字符集里有功能的符号: - ^ 
11  
12 ret=re.findall('[1-9]','45dha3')
13 print(ret)#['4', '5', '3']
14  
15 ret=re.findall('[^ab]','45bdha3')
16 print(ret)#['4', '5', 'd', 'h', '3']
17  
18 ret=re.findall('[d]','45bdha3')
19 print(ret)#['4', '5', '3']
[]

元字符之转义符

  反斜杠后边跟元字符去除特殊功能,比如.
  反斜杠后边跟普通字符实现特殊功能,比如d

  d  匹配任何十进制数;它相当于类 [0-9]。
  D 匹配任何非数字字符;它相当于类 [^0-9]。
  s  匹配任何空白字符;它相当于类 [ fv]。
  S 匹配任何非空白字符;它相当于类 [^ fv]。
  w 匹配任何字母数字字符;它相当于类 [a-zA-Z0-9_]。
  W 匹配任何非字母数字字符;它相当于类 [^a-zA-Z0-9_]
    匹配一个特殊字符边界,比如空格 ,&,#等

元字符之分组()

1 m = re.findall(r'(ad)+', 'add')
2 print(m)
3  
4 ret=re.search('(?P<id>d{2})/(?P<name>w{3})','23/com')
5 print(ret.group())#23/com
6 print(ret.group('id'))#23
()

元字符之|

1 #或(|)
2 ret=re.search('(ab)|d','rabhdg8sd')
3 print(ret.group())#ab
|
 1 ret = re.findall(r"(ab)|(cd)","abcdxxxabxxxcd")
 2 print(ret)  #[('ab', ''), ('', 'cd'), ('ab', ''), ('', 'cd')]
 3 ret = re.findall(r"(ab)|cd","abcdxxxabxxxcd")
 4 print(ret)  #['ab', '', 'ab', '']
 5 ret = re.findall(r"ab|(cd)","abcdxxxabxxxcd")
 6 print(ret)  #['', 'cd', '', 'cd']
 7 ret = re.findall(r"ab|cd","abcdxxxabxxxcd")
 8 print(ret)  #['ab', 'cd', 'ab', 'cd']
 9 ret = re.findall(r"(ab|cd)","abcdxxxabxxxcd")
10 print(ret)  #['ab', 'cd', 'ab', 'cd']
添加()|用法

re模块下的常用方法

 1 import re
 2 #1
 3 re.findall('a','alvin yuan')    #返回所有满足匹配条件的结果,放在列表里
 4 #2
 5 re.search('a','alvin yuan').group()  #函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回一个包含匹配信息的对象,该对象可以
 6                                      # 通过调用group()方法得到匹配的字符串,如果字符串没有匹配,则返回None。
 7  
 8 #3
 9 re.match('a','abc').group()     #同search,不过尽在字符串开始处进行匹配
10  
11 #4
12 ret=re.split('[ab]','abcd')     #先按'a'分割得到''和'bcd',在对''和'bcd'分别按'b'分割
13 print(ret)#['', '', 'cd']
14  
15 #5
16 ret=re.sub('d','abc','alvin5yuan6',1)
17 print(ret)#alvinabcyuan6
18 ret=re.subn('d','abc','alvin5yuan6')
19 print(ret)#('alvinabcyuanabc', 2)
20  
21 #6
22 obj=re.compile('d{3}')
23 ret=obj.search('abc123eeee')
24 print(ret.group())#123
常用方法
1 import re
2 
3 ret=re.findall('www.(baidu|oldboy).com','www.oldboy.com')
4 print(ret)  #['oldboy']     这是因为findall会优先把匹配结果组里内容返回,如果想要匹配结果,取消权限即可
5 
6 ret=re.findall('www.(?:baidu|oldboy).com','www.oldboy.com')  # ?: 取消权限符号
7 print(ret)  #['www.oldboy.com']
补充
 1 import re
 2 
 3 print(re.findall("<(?P<tag_name>w+)>w+</(?P=tag_name)>","<h1>hello</h1>"))
 4 #运行结果['h1']
 5 print(re.search("<(?P<tag_name>w+)>w+</(?P=tag_name)>","<h1>hello</h1>").group('tag_name'))
 6 #运行结果<re.Match object; span=(0, 14), match='<h1>hello</h1>'>
 7 print(re.search("<(?P<tag_name>w+)>w+</(?P=tag_name)>","<h1>hello</h1>").group('tag_name'))
 8 #运行结果h1
 9 print(re.search(r"<(w+)>w+</1>","<h1>hello</h1>"))
10 #运行结果<re.Match object; span=(0, 14), match='<h1>hello</h1>'>
补充

10.logging模块

 1 """定义一个logger函数"""
 2 def logger():
 3     import logging
 4     logger = logging.getLogger()  #添加根
 5 
 6     fh = logging.FileHandler("message.txt")  #添加日志文件路径
 7 
 8     fm = logging.Formatter('%(asctime)s %(name)s %(message)s [%(lineno)d]')  #输出日志的格式和内容
 9 
10     #添加信息
11     fh.setFormatter(fm)
12     logger.addHandler(fh)
13     #设置日志输出的等级
14     logger.setLevel(logging.DEBUG)
15     return logger
16 
17 #调用logger函数
18 logger = logger()
19 
20 #添加日志输出的内容
21 logger.debug('bebug massage')
22 logger.info('info massage')
23 logger.warning('warning massage')
24 logger.error('error massage')
25 logger.critical('bebug massage')
logging

11.configparse模块

 1 import configparser
 2 config = configparser.ConfigParser()
 3 config["DEFAULT"] = {'ServerAliveInterval': '45',
 4                       'Compression': 'yes',
 5                      'CompressionLevel': '9'}
 6 config['bitbucket.org'] = {}
 7 config['bitbucket.org']['User'] = 'hg'
 8 config['topsecret.server.com'] = {}
 9 topsecret = config['topsecret.server.com']
10 topsecret['Host Port'] = '50022'     # mutates the parser
11 topsecret['ForwardX11'] = 'no'  # same here
12 config['DEFAULT']['ForwardX11'] = 'yes'
13 with open('example.ini', 'w') as configfile:
14    config.write(configfile)  #写入文件
configparse

12.hashlib模块

 1 import hashlib
 2 
 3 s = hashlib.md5("alvin".encode('utf8'))  #加盐值
 4 s.update("hello".encode('utf8'))  #加密
 5 print(s.hexdigest())
 6 
 7 import hmac
 8 
 9 h = hmac.new('alvin'.encode('utf8'))
10 h.update('hello'.encode('utf8'))
11 print(h.hexdigest())
hashlib
原文地址:https://www.cnblogs.com/ailadi/p/10078063.html