常用标准库

官方文档标准库列表:
https://docs.python.org/zh-cn/3.8/library/index.html
标准库:os
os库主要对目标和文件操作。

os.path类用于获取文件属性。

标准库:sys
sys库用于与Python解释器交互。

platform库用于获取操作系统详细信息。

标准库:glob
glob库用于文件查找,支持通配符(*、?、[])
示例1:查找目录中所有以.sh为后缀的文件: >>> glob.glob('/home/user/*.sh') ['/home/user/b.sh', '/home/user/a.sh', '/home/user/sum.sh'] 示例2:查找目录中出现单个字符并以.sh为后缀的文件: >>> glob.glob('/home/user/?.sh') ['/home/user/b.sh', '/home/user/a.sh'] 示例3:查找目录中出现a.sh或b.sh的文件: >>> glob.glob('/home/user/[a|b].sh') ['/home/user/b.sh', '/home/user/a.sh']
|
标准库:random
random库用于生成随机数。

标准库:subprocess
subprocess库用于执行Shell命令,工作时会fork一个子进程去执行任务,连接到子进程的标准输入、输出、错误,并获得 它们的返回代码。
这个模块将取代os.system、os.spawn*、os.popen*、popen2.和commands.。
subprocess的主要方法:
subprocess.run(),subprocess.Popen(),subprocess.call
语法:subprocess.run(args, *, stdin=None, stdout=None, stderr=None, shell=False, cwd=None, timeout=None, check=False, encoding=None)

示例:执行shell命令
import subprocess cmd = "pwd" result = subprocess.run(cmd, shell=True, timeout=3, stderr=subprocess.PIPE, stdout=subprocess.PIPE) print(result)
run方法返回CompletedProcess实例,可以直接从这个实例中获取命令运行结果: print(result.returncode) print(result.stdout) print(result.stderr)
|
标准库:json
JSON是一种轻量级数据交换格式,一般API返回的数据大多是 JSON、XML,如果返回JSON的话,需将获取的数据转换成字典, 方面在程序中处理。
json主要提供两种方法:
应用场景:访问API

import json computer = {"主机":5000,"显示器":1000,"鼠标":60,"键盘":150} json_obj = json.dumps(computer) print(type(json_obj)) print(json_obj)
import json data = json.loads(json_obj) print(type(data))
|
标准库:time
time库用于满足简单的时间处理,例如获 取当前时间戳、日期、时间、休眠。

示例1:将当前时间转换为指定格式 import time time.strftime("%Y-%m-%d %H:%M:%S")
示例2:将时间戳转换指定格式 now = time.time() struct_time = time.localtime(now) time.strftime('%Y-%m-%d %H:%M:%S',struct_time)
|
标准库:datetime
datetime库用于处理更复杂的日期和时间。
提供以下几个类:

from datetime import date, datetime
date.strftime(datetime.now(), '%Y-%m-%d %H:%M:%S')
date.today()
date_array = datetime.fromtimestamp(time.time()) date_array.strftime("%Y-%m-%d %H:%M:%S")
from datetime import date, timedelta yesterday = date.today() - timedelta(days=1) print(yesterday)
tomorrow = date.today() + timedelta(days=1)
|
标准库:urllib
urllib库用于访问URL。
urllib包含以下类:
用的最多是urllib.request 类,它定义了适用于在各种复杂情况下打开 URL,例如基本认证、重定向、Cookie、代理等。
from urllib import request res = request.urlopen("http://www.baidu.com")
|
res 是一个HTTPResponse类型的对象,包含以下方法和属性:

示例1:自定义用户代理
from urllib import request url = "http://www.baidu.com" user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" header = {"User-Agent": user_agent} req = request.Request(url, headers=header) res = request.urlopen(req) print(res.getcode())
|
示例2:向接口提交用户数据
from urllib import request, parse url = "http://www.baidu.com/login" post_data = {"username":"user1","password":"123456"}
post_data = parse.urlencode(post_data).encode("utf8") req = request.Request(url, data=post_data, headers=header) res = request.urlopen(req) print(res.read())
|
标准库:re
Python正则表达式主要由re标准库提供,基本上支持所有的正则表达式。

语法:re.compile(pattern, flags=0)
pattern 指的是正则表达式。flags是标志位 的修饰符,用于控制表达式匹配模式
import re s = "this is test string" pattern = re.compile('this') result = pattern.match(s) print(result.group())
|
语法:re.match(pattern, string, flags=0)
import re s = "this is test string" result = re.match('this', s) print(result.group())
|
匹配成功后,result对象会增加一个group()方法,可 以用它来获取匹配结果