前言
Python拥有丰富的标准库,其中包含了大量的模块,这些模块提供了各种功能和工具,方便开发者在项目中快速实现特定功能。本文将介绍一些常用的Python模块,包括它们的作用和常用方法,以帮助读者在日常编程中更加高效地使用Python。
注意 本篇使用的模块都需要导入使用 import 模块名 dir(模块): 获取模块支持的所有方法和属性 help(模块或方法): 查看模块的调用支持的文档及参数等信息
sys
用于与Python解释器进行交互以及访问系统相关的功能
sys.path: 获取python导入包的路径
In [1]: import sys
In [2]: sys.path
Out[2]:
['/usr/local/bin',
'/usr/local/lib/python3.7/site-packages',
'/Users/msw/.ipython']
sys.argv: 获取运行脚本时, 输入的参数
脚本内容
# -*- coding: utf-8 -*-
# @Author: Mehaei
# @Date: 2023-07-29 10:26:57
# @Last Modified by: Mehaei
# @Last Modified time: 2023-07-29 16:02:05
import sys
if __name__ == "__main__":
args = sys.argv
print(f"input args: {args}")
print(f"input args type: {type(args)}")
运行输出
python3.7 test_sys.py 1 2 3 4
input args: ['test_sys.py', '1', '2', '3', '4']
input args type: <class 'list'>
sys.exit(退出代码): 用于退出程序,可选择性地返回一个状态码
# -*- coding: utf-8 -*-
# @Author: Mehaei
# @Date: 2023-07-29 10:26:57
# @Last Modified by: Mehaei
# @Last Modified time: 2023-07-29 10:37:59
import sys
def some_function():
# 在这里进行一些处理
exit_status_code = -1 # 退出状态码,可以是任意整数
sys.exit(exit_status_code)
def main():
some_function()
print("这行代码不会执行,因为程序已经在some_function()中退出。")
if __name__ == "__main__":
try:
main()
except SystemExit as e:
exit_status_code = e.code
print("程序退出状态码:", exit_status_code)
运行脚本输出:
python3.7 test_sys.py
程序退出状态码: -1
os
用于与操作系统进行交互,提供了访问操作系统功能的接口
os.getcwd(): 获取当前工作目录
In [2]: import sys
In [3]: os.getcwd()
Out[3]: '/test'
os.environ: 环境变量操作
In [7]: os.environ["test"] = "1111"
os.getenv(变量名): 获取环境变量
In [8]: os.getenv("test")
Out[8]: '1111'
In [23]: os.environ["test"]
Out[23]: '1111'
os.remove(文件名): 删除文件
In [9]: os.remove("test.txt")
os.rename(原文件名, 目标文件名): 重命名文件
In [10]: os.rename("test.txt")
os.rmdir(文件路径)
In [11]: os.rmdir("/test")
os.path: 主要对文件路径的操作
os.path.exists(文件或文件路径): 查看文件或文件夹是否存在
In [12]: os.path.exists("test.py")
Out[12]: False
os.path.abspath(文件或文件路径): 获取文件或文件夹的绝对路径
In [14]: os.path.abspath("./")
Out[14]: '/test'
os.path.dirname(文件或文件路径): 返回文件夹的路径部分
In [17]: os.path.dirname("test/")
Out[17]: 'test'
os.path.split(文件路径): 返回文件路径和文件
In [20]: os.path.split("test/test.py")
Out[20]: ('test', 'test.py')
os.path.getsize(文件或文件路径): 返回文件或文件夹的大小, 单位: 字节
In [21]: os.path.getsize("./")
Out[21]: 736
In [22]: os.path.getsize("./1606892719605.jpg")
Out[22]: 425008
re
正则表达式模块,提供了对正则表达式的支持
re.search(正则, 字符串): 在字符串中查找匹配项。
In [37]: import re
In [38]: r = r"(\d+)"
In [39]: s = "小明今年18岁"
In [40]: re.search(r, s)
Out[40]: <re.Match object; span=(4, 6), match='18'>
In [41]: re.search(r, s).group()
Out[41]: '18'
re.findall(正则, 字符串): 返回所有匹配的列表。
In [42]: re.findall(r, s)
Out[42]: ['18']
re.sub(正则, 替换的字符串, 字符串): 将匹配的部分替换为指定字符串。
In [44]: re.sub(r, "19", s)
Out[44]: '小明今年19岁'
string
用于处理字符串的常见操作和常量
ascii_letters: 获取所有ascii码中字母字符的字符串(包含大写和小写)
In [48]: import string
In [49]: string.ascii_letters
Out[49]: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
ascii_uppercase: 获取所有ascii码中的大写英文字母
In [50]: string.ascii_uppercase
Out[50]: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
ascii_lowercase: 获取所有ascii码中的小写英文字母
In [51]: string.ascii_lowercase
Out[51]: 'abcdefghijklmnopqrstuvwxyz'
digits: 获取所有的10进制数字字符
In [52]: string.digits
Out[52]: '0123456789'
octdigits: 获取所有的8进制数字字符
In [53]: string.octdigits
Out[53]: '01234567'
hexdigits: 获取所有16进制的数字字符
In [54]: string.hexdigits
Out[54]: '0123456789abcdefABCDEF'
printable: 获取所有可以打印的字符
In [55]: string.printable
Out[55]: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'
whitespace: 获取所有空白字符
In [56]: string.whitespace
Out[56]: ' \t\n\r\x0b\x0c'
punctuation: 获取所有的标点符号
In [57]: string.punctuation
Out[57]: '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
random
用于生成随机数和随机选择操作
random.random(): 返回一个0到1之间的随机浮点数。
In [69]: import random
In [70]: random.random()
Out[70]: 0.8299833392547933
random.randint(数值, 数值): 返回[a, b]之间的随机整数。
In [66]: random.randint(1, 20)
Out[66]: 11
random.choice(序列): 从序列中随机选择一个元素。
In [63]: random.choice([1,2,3])
Out[63]: 3
random.shuffle(序列): 随机打乱序列的顺序。
In [88]: s = [1,2,3,4]
In [89]: random.shuffle(s)
In [90]: s
Out[90]: [4, 3, 1, 2]
math
提供对数学运算的支持
math.sqrt(数值): 返回x的平方根, 开平方
In [4]: import math
In [5]: math.sqrt(9)
Out[5]: 3.0
math.ceil(数值): 返回大于等于x的最小整数, 向上取整
In [9]: math.ceil(1.1)
Out[9]: 2
math.floor(数值): 返回小于等于x的最大整数, 向下取整
In [10]: math.floor(1.9)
Out[10]: 1
pow(底数,幂): 计算一个数值的N次方
该操作相当于**运算但是结果为浮点型
In [11]: math.pow(2, 3)
Out[11]: 8.0
fsum(序列): 将一个序列的数值进行相加求和
In [13]: math.fsum([1,2,3])
Out[13]: 6.0
json
用于处理JSON(JavaScript Object Notation)数据的编码和解码
json.dumps(对象): 将 对象 序列化为 JSON 格式的 字符串
In [14]: import json
In [15]: d = {"a": 1}
In [22]: dd = json.dumps(d)
In [23]: dd
Out[23]: '{"a": 1}'
json.loads(字符串): 将 字符串 反序列化为 python 对象
In [24]: ddd = json.loads(dd)
In [25]: ddd
Out[25]: {'a': 1}
json.dump(对象, 文件操作句柄): 将对象序列化到文件中
In [29]: d
Out[29]: {'a': 1}
In [30]: json.dump(d, open("test.json", "w+"))
In [31]: with open("test.json", "r+") as f: print(f.read())
{"a": 1}
json.load(文件操作句柄): 反序列化文件为python对象
In [33]: json.load(open("test.json", "r+"))
Out[33]: {'a': 1}
更多模块
https://docs.python.org/zh-cn/3/library/