- 公众号:人生只不过是一场投资
- 温馨提示:每个笔记文档都会绑定一个笔记资源;手机端可能看不到,网页端请自行下载。
Python 标准库提供了丰富的模块,涵盖了从文件操作、数据处理到网络编程等各个方面。以下是一些常用的标准库模块及其主要功能和方法。
1. os 模块
os
模块提供了与操作系统进行交互的功能,常用场景:
知识点 | 函数/方法 | 参数说明 |
---|
获取当前工作目录 | os.getcwd() | 无参数 |
改变当前工作目录 | os.chdir(path) | path :要切换到的目录路径 |
列出目录内容 | os.listdir(path) | path :要列出的目录路径 |
创建目录 | os.mkdir(path) | path :要创建的目录路径 |
删除文件 | os.remove(path) | path :要删除的文件路径 |
删除目录 | os.rmdir(path) | path :要删除的目录路径 |
获取环境变量 | os.getenv(key) | key :环境变量的名称 |
设置环境变量 | os.putenv(key, value) | key :环境变量的名称,value :环境变量的值 |
执行系统命令 | os.system(command) | command :要执行的系统命令 |
- 路径操作:
os.path
子模块提供了路径操作的功能。
知识点 | 函数/方法 | 参数说明 |
---|
获取绝对路径 | os.path.abspath(path) | path :相对路径 |
判断是否为文件 | os.path.isfile(path) | path :要判断的路径 |
判断是否为目录 | os.path.isdir(path) | path :要判断的路径 |
获取文件名 | os.path.basename(path) | path :完整路径 |
获取目录名 | os.path.dirname(path) | path :完整路径 |
2. sys 模块
sys
模块提供了与Python解释器进行交互的功能。常用场景:
- 获取命令行参数
- 操作Python运行时环境
- 控制Python解释器
知识点 | 函数/方法 | 参数说明 |
---|
获取命令行参数 | sys.argv | 无参数 |
退出程序 | sys.exit([arg]) | arg :退出时的状态码(可选) |
获取Python版本 | sys.version | 无参数 |
获取模块搜索路径 | sys.path | 无参数 |
设置默认编码 | sys.setdefaultencoding(name) | name :编码名称(仅限Python 2) |
知识点 | 函数/方法 | 参数说明 |
---|
标准输入 | sys.stdin | 无参数 |
标准输出 | sys.stdout | 无参数 |
标准错误 | sys.stderr | 无参数 |
3. datetime 模块
datetime
模块提供了处理日期和时间的功能。常用场景:
- 获取当前日期和时间
- 日期和时间的运算
- 格式化日期和时间
知识点 | 函数/方法 | 参数说明 |
---|
获取当前日期和时间 | datetime.datetime.now() | 无参数 |
创建日期对象 | datetime.date(year, month, day) | year :年份,month :月份,day :日期 |
创建时间对象 | datetime.time(hour, minute, second) | hour :小时,minute :分钟,second :秒 |
日期加减 | date + timedelta(days=1) | days :天数(可以为负数) |
时间加减 | time + timedelta(hours=1) | hours :小时数(可以为负数) |
格式化日期和时间 | datetime.strftime(format) | format :格式字符串 |
解析日期和时间 | datetime.strptime(date_string, format) | date_string :日期字符串,format :格式字符串 |
知识点 | 函数/方法 | 参数说明 |
---|
计算时间差 | datetime.timedelta(days, seconds, microseconds) | days :天数,seconds :秒数,microseconds :微秒数 |
4. re 模块
re
模块提供了正则表达式操作的功能。常用场景:
知识点 | 函数/方法 | 参数说明 |
---|
编译正则表达式 | re.compile(pattern) | pattern :正则表达式模式 |
匹配字符串 | re.match(pattern, string) | pattern :正则表达式模式,string :要匹配的字符串 |
搜索字符串 | re.search(pattern, string) | pattern :正则表达式模式,string :要搜索的字符串 |
查找所有匹配 | re.findall(pattern, string) | pattern :正则表达式模式,string :要查找的字符串 |
替换字符串 | re.sub(pattern, repl, string) | pattern :正则表达式模式,repl :替换的字符串,string :要处理的字符串 |
分割字符串 | re.split(pattern, string) | pattern :正则表达式模式,string :要分割的字符串 |
- 正则表达式对象:使用编译后的正则表达式对象进行操作。
知识点 | 函数/方法 | 参数说明 |
---|
匹配方法 | pattern.match(string) | string :要匹配的字符串 |
搜索方法 | pattern.search(string) | string :要搜索的字符串 |
查找所有匹配 | pattern.findall(string) | string :要查找的字符串 |
替换方法 | pattern.sub(repl, string) | repl :替换的字符串,string :要处理的字符串 |
5. json 模块
json
模块提供了处理 JSON 数据的功能。常用场景:
- JSON 数据的编码和解码
- 读取和写入 JSON 文件
知识点 | 函数/方法 | 参数说明 |
---|
编码 JSON 数据 | json.dumps(obj) | obj :要编码的对象 |
解码 JSON 数据 | json.loads(s) | s :要解码的 JSON 字符串 |
读取 JSON 文件 | json.load(fp) | fp :文件对象 |
写入 JSON 文件 | json.dump(obj, fp) | obj :要写入的对象,fp :文件对象 |
- 格式化 JSON 数据:美化输出 JSON 数据。
知识点 | 函数/方法 | 参数说明 |
---|
美化输出 | json.dumps(obj, indent=4) | obj :要编码的对象,indent :缩进级别 |
6. csv 模块
csv
模块提供了处理 CSV 文件的功能。常用场景:
知识点 | 函数/方法 | 参数说明 |
---|
创建 CSV 读对象 | csv.reader(csvfile) | csvfile :文件对象 |
创建 CSV 写对象 | csv.writer(csvfile) | csvfile :文件对象 |
读取一行 | reader.writerow(row) | row :要读取的行 |
写入一行 | writer.writerow(row) | row :要写入的行 |
知识点 | 函数/方法 | 参数说明 |
-------------- | -------------------------- | ------------------------------------ |
写入多行 | writer.writerows(rows) | rows :要写入的多行数据 |
- DictReader 和 DictWriter:使用字典形式读取和写入 CSV 文件。
知识点 | 函数/方法 | 参数说明 |
---|
创建 DictReader 对象 | csv.DictReader(csvfile) | csvfile :文件对象 |
创建 DictWriter 对象 | csv.DictWriter(csvfile, fieldnames) | csvfile :文件对象,fieldnames :字段名列表 |
写入表头 | writer.writeheader() | 无参数 |
写入字典行 | writer.writerow(rowdict) | rowdict :要写入的字典行 |
7. urllib 模块
urllib
模块提供了处理 URL 和 HTTP 请求的功能。常用场景:
知识点 | 函数/方法 | 参数说明 |
---|
发送 GET 请求 | urllib.request.urlopen(url) | url :要请求的 URL |
发送 POST 请求 | urllib.request.Request(url, data) | url :要请求的 URL,data :要发送的数据 |
解析 URL | urllib.parse.urlparse(url) | url :要解析的 URL |
编码 URL 参数 | urllib.parse.urlencode(params) | params :要编码的参数字典 |
知识点 | 函数/方法 | 参数说明 |
---|
读取响应内容 | response.read() | 无参数 |
获取响应状态码 | response.getcode() | 无参数 |
8. math 模块
math
模块提供了常用的数学函数和常量。常用场景:
知识点 | 函数/方法 | 参数说明 |
---|
计算平方根 | math.sqrt(x) | x :要计算平方根的数 |
计算幂 | math.pow(x, y) | x :底数,y :指数 |
计算对数 | math.log(x, base) | x :真数,base :对数的底(可选) |
计算正弦 | math.sin(x) | x :弧度值 |
计算余弦 | math.cos(x) | x :弧度值 |
圆周率 | math.pi | 无参数 |
自然常数 | math.e | 无参数 |
知识点 | 函数/方法 | 参数说明 |
---|
计算绝对值 | math.fabs(x) | x :要计算绝对值的数 |
计算阶乘 | math.factorial(x) | x :要计算阶乘的数 |
计算最大公约数 | math.gcd(x, y) | x :第一个数,y :第二个数 |
9. random 模块
random
模块提供了生成随机数的功能。常用场景:
知识点 | 函数/方法 | 参数说明 |
---|
生成随机整数 | random.randint(a, b) | a :最小值,b :最大值 |
生成随机浮点数 | random.random() | 无参数 |
随机选择 | random.choice(seq) | seq :要选择的序列 |
打乱顺序 | random.shuffle(seq) | seq :要打乱的序列 |
生成随机样本 | random.sample(population, k) | population :总体,k :样本大小 |
知识点 | 函数/方法 | 参数说明 |
---|
生成随机种子 | random.seed(a) | a :种子值(可选) |
生成随机范围浮点数 | random.uniform(a, b) | a :最小值,b :最大值 |
10. collections 模块
collections
模块提供了高效的数据结构。常用场景:
知识点 | 函数/方法 | 参数说明 |
---|
有序字典 | collections.OrderedDict | 无参数 |
默认字典 | collections.defaultdict | default_factory :默认值生成函数 |
计数器 | collections.Counter | iterable :可迭代对象(可选) |
双端队列 | collections.deque | iterable :可迭代对象(可选) |
命名元组 | collections.namedtuple(typename, field_names) | typename :类型名,field_names :字段名列表 |
知识点 | 函数/方法 | 参数说明 |
---|
链接列表 | collections.ChainMap | *maps :字典列表 |
用户字典 | collections.UserDict | initialdata :初始数据(可选) |
用户列表 | collections.UserList | initiallist :初始列表(可选) |
用户字符串 | collections.UserString | seq :初始字符串 |