地基Python常用的模块包及其用法

        Python 标准库非常丰富,提供了大量内置模块,覆盖文件操作、数据处理、网络通信、系统交互等场景。以下是常用模块的详细说明及代码示例:


1. 文件与系统操作

​【os 模块】

        处理操作系统相关功能(路径、目录、进程等)。

import os

# 获取当前工作目录
current_dir = os.getcwd()
print("当前目录:", current_dir)

# 创建新目录
os.makedirs("new_folder", exist_ok=True)

# 列出目录内容
files = os.listdir(".")
print("目录内容:", files)

# 路径拼接
file_path = os.path.join(current_dir, "new_folder", "test.txt")

​【sys 模块】

        访问与 Python 解释器交互的变量和函数。

import sys

# 获取命令行参数
args = sys.argv
print("命令行参数:", args)

# 退出程序
if len(args) < 2:
    sys.exit("缺少参数!")

# 查看 Python 解释器路径
print("Python 路径:", sys.executable)

2. 日期与时间

datetime 模块

        处理日期和时间。

from datetime import datetime, timedelta

# 当前时间
now = datetime.now()
print("当前时间:", now)

# 格式化时间
formatted = now.strftime("%Y-%m-%d %H:%M:%S")
print("格式化时间:", formatted)

# 时间计算
tomorrow = now + timedelta(days=1)
print("明天此时:", tomorrow)

3. 数据序列化与解析

json 模块

        JSON 数据的编码与解码。

"""
将 数据写入到 json文件中:
    1. 导入json模块;
    2. 使用with open 工具
        with open('json文件', 'w/r/b', encoding='utf-8') as f:
            json.dump({'name':'悟空', 'age':18, 'address':'西天'}, f, ensure_ascii=False)

            with
            open
            w/r/b => w write 写,  r read 读, b 二进制 binary system
            as f 取别名 f
            ensure_ascii=False 中文显示汉字

"""
import json
with open('字典转化测试玩玩.json', 'w', encoding='utf-8') as f:
    json.dump({'name':'悟空', 'age':18, 'address':'西天'}, f, ensure_ascii=False)



import json
#创建一个JSON串
json_str = ('{"name":"zhangsan",  "age":255, "address":"北京", "wage":"九齿钉耙", "sex":"男",  "hobby":["打球", "打豆豆"],  "is_married":true}')
print(json_str)
#转成字典
my_dict = json.loads(json_str)
print(my_dict)


# 从 JSON 文件加载数据
with open("data.json", "w") as f:
    json.dump(data, f)  # 写入文件

with open("data.json", "r") as f:
    loaded_data = json.load(f)
    print("从文件加载:", loaded_data)


"""
从json文件中读取数据,并转化成字典
    1. 导入json工具包
    2. 转化: with open( 'json文件', 'r', encoding='utf') as jsonStr
                json.load(jsonStr)
"""
import json
with open('字典转化测试玩玩.json', 'r', encoding='utf-8') as jsonStr:
    python_obj = json.load(jsonStr)
    print(python_obj)
    print(type(python_obj))



4. 正则表达式

​**re 模块**

        字符串的模式匹配与替换。

import re

text = "联系方式:电话 123-4567-8901,邮箱 [email protected]"

# 查找电话号码
phone_pattern = r"\d{3}-\d{4}-\d{4}"
phone_match = re.search(phone_pattern, text)
if phone_match:
    print("找到电话:", phone_match.group())

# 提取所有邮箱
email_pattern = r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b"
emails = re.findall(email_pattern, text)
print("所有邮箱:", emails)

5. 数学计算

​**math 模块**

        数学函数和常量。

import math

# 计算平方根
sqrt_val = math.sqrt(25)
print("平方根:", sqrt_val)  # 5.0

# 三角函数
angle = math.radians(60)  # 角度转弧度
sin_val = math.sin(angle)
print("sin(60°):", sin_val)  # ≈0.866

# 常量
print("圆周率:", math.pi)     # 3.141592653589793
print("自然常数 e:", math.e)  # 2.718281828459045

6. 随机数生成

random 模块

        生成伪随机数。

import random

# 生成随机整数
rand_int = random.randint(1, 100)
print("随机整数:", rand_int)

# 从列表中随机选择
colors = ["red", "green", "blue"]
rand_color = random.choice(colors)
print("随机颜色:", rand_color)

# 打乱列表顺序
random.shuffle(colors)
print("打乱后的列表:", colors)

7. 数据结构扩展

collections 模块

        提供高效的数据结构。

from collections import defaultdict, Counter

# defaultdict(默认字典)
word_counts = defaultdict(int)
words = ["apple", "banana", "apple", "orange"]
for word in words:
    word_counts[word] += 1
print("单词计数:", word_counts)  # {'apple': 2, 'banana': 1, 'orange': 1}

# Counter(计数器)
counter = Counter(words)
print("出现次数最多的元素:", counter.most_common(1))  # [('apple', 2)]

8. 命令行参数解析

argparse 模块

        解析命令行参数。

import argparse

# 创建解析器
parser = argparse.ArgumentParser(description="示例程序")
parser.add_argument("-n", "--name", required=True, help="用户名称")
parser.add_argument("-a", "--age", type=int, default=20, help="用户年龄")

# 解析参数
args = parser.parse_args()
print(f"你好,{args.name}!你今年 {args.age} 岁。")

        运行命令示例:

python script.py -n Alice -a 30

9. 网络请求

urllib 模块

        处理 HTTP 请求。

from urllib import request

# 发送 GET 请求
url = "https://www.example.com"
response = request.urlopen(url)
html = response.read().decode("utf-8")
print("网页内容前 100 字符:", html[:100])

10. 压缩文件处理

zipfile 模块

        读写 ZIP 压缩文件。

import zipfile

# 创建 ZIP 文件
with zipfile.ZipFile("archive.zip", "w") as zipf:
    zipf.write("data.json")  # 将文件添加到压缩包

# 解压 ZIP 文件
with zipfile.ZipFile("archive.zip", "r") as zipf:
    zipf.extractall("extracted_folder")

其他常用模块

模块名 用途
logging 日志记录(记录程序运行信息)
csv CSV 文件读写
sqlite3 SQLite 数据库操作
unittest 单元测试框架
threading 多线程编程
multiprocessing 多进程编程
hashlib 哈希算法(如 MD5、SHA256)

总结

        Python 的标准库几乎覆盖了所有基础需求,建议优先使用这些内置模块。对于更复杂的需求(如科学计算、图形界面等),可结合第三方库(如 NumPyPandasPyQt)。查看官方文档获取完整模块列表:Python Standard Library。

后记:后面遇到不同的、认知上有偏差会继续更新此篇。

(望各位潘安、各位子健/各位彦祖、于晏不吝赐教!多多指正!)

你可能感兴趣的:(python,开发语言)