记录下python中一些经常用到的模块
随时更新...
目录
1.requests模块
先用列表推导看一下requests模块中包含哪些东西
>>> import requests
>>> [n for n in dir(requests)if not n.startswith('_')]
输出结果如下,下划线标红部分为经常用到的:
['ConnectTimeout', 'ConnectionError', 'DependencyWarning', 'FileModeWarning', 'HTTPError', 'NullHandler', 'PreparedRequest', 'ReadTimeout', 'Request', 'RequestException', 'RequestsDependencyWarning', 'Response', 'Session', 'Timeout', 'TooManyRedirects', 'URLRequired', 'adapters', 'api', 'auth', 'certs', 'chardet', 'check_compatibility', 'codes', 'compat', 'cookies', 'delete', 'exceptions', 'get', 'head', 'hooks', 'logging', 'models', 'options', 'packages', 'patch', 'post', 'put', 'request', 'session', 'sessions', 'status_codes', 'structures', 'urllib3', 'utils', 'warnings']
2.bs4(BeautifulSoup)
3.urllib(request)
4.os
模块os让你可以访问 多个操作系统服务.
其子模块os.path还包含多个查看创建和删除目录及文件的函数,以及一些操作路径的函数(例如os.path.split和os.path.join)
几个较常用:
1. 映射os.environ:
包含环境变量,例如要访问环境变量PYTHONPATH,可使用os.environ['PYTHONPATH']
2.函数os.system
用于运行外部程序.在子shell中执行操作系统命令.
3.变量os.sep是用于路径名中的分隔符.
4.变量os.pathsep,用来组合多条路径,
5.变量os.linesep,用于文本文件中的行分隔符.
6.函数urandom,使用随系统而异的强加密随机源.7
5.threading
6.time
模块time包含用于获取当前世界,操作时间和日期.从字符串中读取日期,将日期格式化为字符串的函数.
模块time中的一些重要函数
1.time.sleep(secs)让解释器等待指定的秒数.这个用在爬虫中,可以避免因访问频率过高而被识别为爬虫
2.time.asctime()将当前时间转换为字符串
3.time.localtime()及time.gtime(),将一个实数转化为日期元组,localtime是本地时间,gmtime是国际时间
>>> time.gmtime()
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=11, tm_hour=6, tm_min=22, tm_sec=36, tm_wday=1, tm_yday=162, tm_isdst=0)
>>> time.localtime()
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=11, tm_hour=14, tm_min=23, tm_sec=30, tm_wday=1, tm_yday=162, tm_isdst=0)
4.time.mktime()将日期元组转换为秒数
7.random
模块random包含生成伪随机数的函数,有助于编写模拟程序或生成随机输出的程序.
一些常用:
1.函数random.random() 返回一个[0,1]的随机实数
>>> import random
>>> random.random()
0.6079071912116198
2.getrandbits(n)以长整数方式返回n个随机的二进制位
>>> random.getrandbits(5)
15
>>> random.getrandbits(15)
20745
3.uniform(a,b)返回一个[a,b]的随机实数
>>> random.uniform(8,15)
11.42700582046131
>>> random.uniform(1,4)
1.8271609565955027
>>> random.uniform(0,360)
341.0445731515051
4.random.randrange([start],stop,[step])是生成随机整数的标准函数
>>> random.randrange(3)
0
>>> random.randrange(1,3)
2
>>> random.randrange(1,13,2)
7
5.random.choice(seq) 从序列seq中随机选择一个元素
>>> random.choice([13,12,4,5,11])
4
8.re
常用函数:
1.re.compile(pattern[,flags])
将用字符串表示的正则表达式转换为模式对象,以提高匹配效率.
2.re.search(pattern,string[,flags])
在给定字符串中查找第一个与指定正则表达式匹配的子串.找到返回MatchObject,否则返回None.
例:
if re.search(pat,string):
print('found it')
3.re.match(pattern,string[,flags])
在字符串开头查找第一个与指定正则表达式匹配的子串
4.re.split(pattern,string[,maxsplit=0])
>>> import re
>>> some_text = 'nothing, ,I,want,,,but you'
>>> re.split('[, ]+',some_text)#里边的逗号后边有空格
['nothing', 'I', 'want', 'but', 'you']
>>> re.split('[,]+',some_text)#里边的逗号后边无空格
['nothing', ' ', 'I', 'want', 'but you']
5.re.findall(pattern,string)
返回一个列表,其中包含字符串中所有与给定模式匹配的子串
>>> import re
>>> some_text = 'nothing, ,I,want,,,but you'
>>> goal = '[abo]+'
>>> re.findall(goal,some_text)
['o', 'a', 'b', 'o']
6.re.sub(pat.repl,string[,count=0])
从左往右将与模式匹配的子串替换为指定内容
>>> pat = '{name}'
>>> text = 'dear {name}...'
>>> re.sub(pat,'nikki',text)
'dear nikki...'
7.re.escape(string)
一个工具函数,对字符串中所有可能被视为正则表达式运算符的特殊字符都进行转义.
场景:input函数获取了一个包含大量字符的巨长的字符串,想将其用于正则表达式中.
9.sys
模块sys让你可以访问与python解释器紧密相关的变量和函数.
一些重要的函数和变量:
变量sys.argv,命令行参数,包括脚本名
函数sys.exit,退出当前程序,可通过可选参数指定返回错误值或错误消息
映射sys.modules,一个字典,将模块名映射到当前已加载的模块
变量sys.path, 一个列表,包含要在其中查找模块的目录的名称
变量sys.platform, 一个平台标识符,如操作系统名称(sunos5/win32)或其他平台类型(如java1.4.0)
变量sys.stdin, 标准输入流,一个类似于文件的对象
变量sys.stdout,标准输出流,一个类似于文件的对象
变量sys.stderr,标准错物流,一个类似于文件的对象
10.pyquery(PyQuery)
11.importlib
12.importlib.reload
13.lxml
14.json
此处插一下shelve.
Shelve可以作为一个简单的数据存储方案。是对象持久化保存方法,将对象保存到文件里面,默认的数据存储文件是二进制的.使用时,只需要使用open函数获取一个shelf对象,然后对数据进行增删改查操作,在完成工作、并且将内存存储到磁盘中,最后调用close函数变回将数据写入文件。
附一篇shelve讲解,https://www.cnblogs.com/sui776265233/p/9225164.html
15.pprint