一、系统与文件操作类
-
os
模块- 功能:提供与操作系统交互的功能,包括文件和目录操作、路径处理等。
- 应用场景:文件管理、脚本自动化、跨平台开发。
- 使用方法:
os.path.join()
:连接路径片段。os.listdir()
:列出指定目录下的文件和子目录。os.mkdir()
:创建新目录。os.remove()
:删除文件。
- 程序示例:
import os # 获取当前工作目录 current_dir = os.getcwd() print(current_dir) # 列出指定目录下的文件和子目录 dir_path = '/path/to/directory' files_and_dirs = os.listdir(dir_path) print(files_and_dirs)
-
sys
模块- 功能:与 Python 解释器进行交互,提供对解释器相关参数和功能的访问。
- 应用场景:获取命令行参数、控制解释器行为、动态加载模块。
- 使用方法:
sys.argv
:获取命令行参数列表。sys.path
:获取模块搜索路径。sys.exit()
:退出程序。
- 程序示例:
import sys # 获取命令行参数 args = sys.argv print(args) # 退出程序 sys.exit(0)
-
shutil
模块- 功能:提供高级的文件操作功能,如文件复制、移动、删除等。
- 应用场景:文件管理、备份和恢复、项目部署等。
- 使用方法:
- 文件复制:
shutil.copy(src, dst)
将源文件复制到目标位置。 - 文件移动:
shutil.move(src, dst)
将文件从源位置移动到目标位置。 - 递归复制目录:
shutil.copytree(src, dst)
复制整个目录树。 - 删除目录:
shutil.rmtree(path)
删除指定目录及其内容。
- 文件复制:
- 程序示例:
import shutil # 复制文件 shutil.copy('source.txt', 'destination.txt') # 移动文件 shutil.move('old_location.txt', 'new_location.txt') # 复制目录树 shutil.copytree('source_directory', 'destination_directory') # 删除目录 shutil.rmtree('directory_to_delete')
-
pathlib
模块- 功能:以面向对象的方式处理文件系统路径,提供了更直观和简洁的文件操作方法。
- 应用场景:现代 Python 项目中的文件路径处理,提高代码可读性和可维护性。
- 使用方法:
- 创建路径对象:
from pathlib import Path
,p = Path('/path/to/file.txt')
。 - 检查路径是否存在:
p.exists()
。 - 获取文件名、目录名等:
p.name
、p.parent
。 - 读写文件:可以结合
with
语句进行读写操作,如with p.open('r') as f: content = f.read()
。
- 创建路径对象:
- 程序示例:
from pathlib import Path p = Path('/path/to/file.txt') # 检查路径是否存在 if p.exists(): print(f"File exists: {p}") # 获取文件名和目录名 print(f"File name: {p.name}") print(f"Parent directory: {p.parent}") # 读取文件内容 with p.open('r') as f: content = f.read() print(content)
二、数学与随机数类
-
math
模块- 功能:提供数学函数和常量。
- 应用场景:科学计算、图形绘制、数值分析。
- 使用方法:
math.sqrt()
:计算平方根。math.sin()
、math.cos()
、math.tan()
:三角函数计算。math.pi
:圆周率常量。
- 程序示例:
import math # 计算平方根 num = 16 square_root = math.sqrt(num) print(square_root) # 计算正弦值 angle = math.pi / 6 sine_value = math.sin(angle) print(sine_value)
-
random
模块- 功能:生成随机数。
- 应用场景:模拟、游戏开发、随机测试。
- 使用方法:
random.random()
:生成 0 到 1 之间的随机浮点数。random.randint()
:生成指定范围内的随机整数。random.choice()
:从序列中随机选择一个元素。
- 程序示例:
import random # 生成 0 到 1 之间的随机浮点数 random_float = random.random() print(random_float) # 生成 1 到 10 之间的随机整数 random_integer = random.randint(1, 10) print(random_integer) # 从列表中随机选择一个元素 my_list = [1, 2, 3, 4, 5] random_element = random.choice(my_list) print(random_element)
三、日期时间类
datetime
模块- 功能:处理日期和时间。
- 应用场景:日志记录、时间戳处理、日程安排。
- 使用方法:
datetime.datetime.now()
:获取当前日期和时间。datetime.timedelta()
:进行时间间隔的计算。datetime.date()
、datetime.time()
:分别处理日期和时间部分。
- 程序示例:
import datetime # 获取当前日期和时间 now = datetime.datetime.now() print(now) # 计算一周后的日期 one_week_later = now + datetime.timedelta(days=7) print(one_week_later)
四、文本处理类
-
re
模块(正则表达式)- 功能:进行文本模式匹配和搜索替换等操作。
- 应用场景:文本处理、数据验证、日志分析。
- 使用方法:
re.compile()
:编译正则表达式模式。re.search()
:在字符串中搜索匹配的模式。re.findall()
:查找所有匹配的子串。re.sub()
:替换匹配的子串。
- 程序示例:
import re text = "Hello, world! This is a test." pattern = r"world" match = re.search(pattern, text) if match: print(match.group()) all_matches = re.findall(pattern, text) print(all_matches) new_text = re.sub(pattern, "Python", text) print(new_text)
-
json
模块- 功能:处理 JSON 数据格式的编码和解码。
- 应用场景:数据交换、与 Web 服务交互、配置文件读取。
- 使用方法:
json.dumps()
:将 Python 对象转换为 JSON 字符串。json.loads()
:将 JSON 字符串转换为 Python 对象。json.dump()
:将 Python 对象写入 JSON 文件。json.load()
:从 JSON 文件读取并转换为 Python 对象。
- 程序示例:
import json data = { "name": "John", "age": 30, "city": "New York" } json_str = json.dumps(data) print(json_str) parsed_data = json.loads(json_str) print(parsed_data) 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)
-
configparser
模块- 功能:读取和写入 INI 格式的配置文件,可视为一种特定的文本处理。
- 应用场景:存储程序的配置信息、参数设置。
- 使用方法:
- 读取配置文件:
- 创建
ConfigParser
对象:config = configparser.ConfigParser()
。 - 读取文件:
config.read('config.ini')
。 - 获取特定节的配置项:
value = config.get('section_name', 'option_name')
。
- 创建
- 写入配置文件:
- 添加节:
config.add_section('new_section')
。 - 设置配置项:
config.set('new_section', 'option', 'value')
。 - 写入文件:
with open('config.ini', 'w') as configfile: config.write(configfile)
。
- 添加节:
- 读取配置文件:
- 程序示例:
import configparser # 读取配置文件 config = configparser.ConfigParser() config.read('config.ini') print(config.get('section1', 'option1')) # 写入配置文件 config.add_section('section2') config.set('section2', 'option2', 'new_value') with open('config.ini', 'w') as configfile: config.write(configfile)
五、数据处理与分析类
-
pandas
模块- 功能:强大的数据处理和分析库。
- 应用场景:数据清洗、数据分析、数据可视化。
- 使用方法:
pandas.DataFrame
:用于创建和操作二维表格数据。pandas.read_csv()
:读取 CSV 文件。DataFrame.head()
、DataFrame.tail()
:查看数据的前几行或后几行。DataFrame.describe()
:获取数据的统计描述。
- 程序示例:
import pandas as pd data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'City': ['London', 'Paris', 'New York']} df = pd.DataFrame(data) print(df) csv_data = pd.read_csv('example.csv') print(csv_data.head())
-
numpy
模块- 功能:用于科学计算,提供高性能的多维数组和矩阵运算。
- 应用场景:数值计算、机器学习、数据科学。
- 使用方法:
numpy.array()
:创建数组。- 各种数学运算如加法、乘法、矩阵运算等。
numpy.mean()
、numpy.std()
等统计函数。
- 程序示例:
import numpy as np arr = np.array([1, 2, 3, 4, 5]) print(arr) arr2 = np.array([[1, 2], [3, 4]]) matrix_product = np.dot(arr2, arr2.T) print(matrix_product)
六、数据可视化类
matplotlib
模块- 功能:绘制数据可视化图表。
- 应用场景:数据分析可视化、报告生成。
- 使用方法:
matplotlib.pyplot.plot()
:绘制线条图。matplotlib.pyplot.scatter()
:绘制散点图。matplotlib.pyplot.bar()
:绘制柱状图。- 设置标题、标签、坐标轴等。
- 程序示例:
import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] plt.plot(x, y) plt.title('Line Plot') plt.xlabel('X-axis') plt.ylabel('Y-axis') plt.show()
七、通信类
-
pyserial
模块(操作串口)- 功能:实现与串口设备的通信。
- 应用场景:与硬件设备如传感器、微控制器等通过串口进行数据交互。
- 使用方法:
- 创建串口对象:
ser = serial.Serial(port='COM1', baudrate=9600, timeout=1)
。 - 读写操作:
ser.write(b'Hello')
写入数据,data = ser.readline()
读取数据。 - 关闭串口:
ser.close()
。
- 创建串口对象:
- 程序示例:
import serial ser = serial.Serial(port='COM1', baudrate=9600, timeout=1) ser.write(b'Hello Serial!') data = ser.readline() print(data.decode()) ser.close()
-
socket
模块(操作网口)- 功能:提供对网络通信的底层接口。
- 应用场景:网络编程、服务器与客户端通信、网络数据传输。
- 使用方法:
- 服务器端:
- 创建套接字:
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
。 - 绑定地址和端口:
server_socket.bind(('127.0.0.1', 8888))
。 - 监听连接:
server_socket.listen(5)
。 - 接受连接并通信:
client_socket, client_address = server_socket.accept()
。
- 创建套接字:
- 客户端:
- 创建套接字:
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
。 - 连接服务器:
client_socket.connect(('127.0.0.1', 8888))
。
- 创建套接字:
- 服务器端:
- 程序示例:
# 服务器端 import socket server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.bind(('127.0.0.1', 8888)) server_socket.listen(5) client_socket, client_address = server_socket.accept() data = client_socket.recv(1024) print(data.decode()) client_socket.send(b'Hello from server!') client_socket.close() server_socket.close() # 客户端 import socket client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client_socket.connect(('127.0.0.1', 8888)) client_socket.send(b'Hello from client!') data = client_socket.recv(1024) print(data.decode()) client_socket.close()
八、数据加密校验类
-
hashlib
模块(MD5 示例)- 功能:提供多种安全哈希算法,可用于生成数据的哈希值进行校验。
- 应用场景:文件完整性验证、密码存储等。
- 使用方法:
- 导入模块,选择 MD5 算法创建哈希对象:
import hashlib
,m = hashlib.md5()
。 - 更新数据:
m.update(b'Hello')
。 - 获取哈希值:
hash_value = m.hexdigest()
。
- 导入模块,选择 MD5 算法创建哈希对象:
- 程序示例:
import hashlib data = b'This is some data to be hashed.' m = hashlib.md5() m.update(data) hash_result = m.hexdigest() print(hash_result)
-
zlib
模块(CRC32 示例)- 功能:虽然主要用于数据压缩,但也可以获取 CRC32 校验值。
- 应用场景:数据校验,特别是在需要快速校验但对安全性要求不高的场景。
- 使用方法:
- 导入模块:
import zlib
。 - 计算 CRC32 值:
crc_value = zlib.crc32(b'Hello')
。
- 导入模块:
- 程序示例:
import zlib data = b'This is some data for CRC32 check.' crc_value = zlib.crc32(data) print(hex(crc_value))