Python拥有丰富的标准库和第三方库,这些模块极大地扩展了Python的功能,使其在各种应用场景中都能发挥重要作用。下面我将列出一些常用的Python模块及其简单代码案例,帮助你更好地理解和使用它们。
功能:提供了一系列与操作系统交互的函数,如文件操作、进程管理等。
代码案例:列出当前目录下的所有文件和文件夹
import os for item in os.listdir('.'): print(item) 功能:提供访问和使用Python解释器的一些函数,常用于处理命令行参数、退出程序等。
代码案例:打印Python解释器的版本信息并退出程序
import sys print("Python version:", sys.version) sys.exit() 功能:用于编码和解码JSON数据格式。
代码案例:将Python对象转换为JSON字符串并输出
import json data = { "name": "Alice", "age": 30, "city": "New York" } json_str = json.dumps(data) print(json_str) 功能:发送HTTP请求,广泛用于网络爬虫和API交互。
代码案例:发送GET请求获取网页内容
import requests response = requests.get('https://api.github.com') print(response.text) 功能:提供高性能、易用的数据结构和数据分析工具。
代码案例:读取CSV文件并显示前几行数据
import pandas as pd df = pd.read_csv('example.csv') print(df.head()) 功能:强大的数学库,支持大型多维数组和矩阵运算。
代码案例:创建一个数组并进行简单运算
import numpy as np arr = np.array([1, 2, 3]) print(arr * 2) 功能:绘制静态、动态、交互式的图表。
代码案例:绘制简单的线图
import matplotlib.pyplot as plt x = [1, 2, 3, 4] y = [10, 15, 13, 17] plt.plot(x, y) plt.xlabel('X axis') plt.ylabel('Y axis') plt.title('Simple Plot') plt.show() 功能:处理日期和时间。
代码案例:获取当前时间和格式化输出
from datetime import datetime now = datetime.now() print("Current date and time:", now.strftime("%Y-%m-%d %H:%M:%S")) 功能:处理正则表达式,用于字符串的匹配、查找、替换等操作。
代码案例:使用正则表达式查找所有邮箱地址
import re text = "联系我:email@example.com 或 support@example.org" emails = re.findall(r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b', text) print(emails) 功能:提供了对线程的支持,允许同时执行多个任务。
代码案例:创建两个线程分别打印序列
import threading import time def print_numbers(): for i in range(5): print(i, end=' ') time.sleep(0.5) def print_letters(): for letter in 'abcde': print(letter, end=' ') time.sleep(1) t1 = threading.Thread(target=print_numbers) t2 = threading.Thread(target=print_letters) t1.start() t2.start() t1.join() t2.join() 功能:提供安全相关的哈希函数,如MD5、SHA等,用于数据校验和加密。
代码案例:计算字符串的MD5哈希值
import hashlib str_to_hash = "Hello, World!" hash_object = hashlib.md5(str_to_hash.encode()) hex_dig = hash_object.hexdigest() print(hex_dig) 功能:轻量级的Web服务器网关接口(WSGI)Web应用框架。
代码案例:创建一个简单的Web应用,返回"Hello, World!"
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, World!' if __name__ == '__main__': app.run() 功能:提供SQLAlchemy ORM,用于与SQL数据库交互,支持多种数据库后端。
代码案例:连接SQLite数据库并查询数据
from sqlalchemy import create_engine, MetaData, Table, select from sqlalchemy.orm import sessionmaker engine = create_engine('sqlite:///example.db', echo=True) Session = sessionmaker(bind=engine) session = Session() metadata = MetaData() users = Table('users', metadata, autoload_with=engine) stmt = select(users) result = session.execute(stmt) for row in result: print(row) 功能:Google开发的开源机器学习框架,广泛应用于深度学习模型的构建、训练和推理。
代码案例:使用TensorFlow创建一个简单的线性模型
import tensorflow as tf import numpy as np # 创建数据集 x_data = np.random.rand(100).astype(np.float32) y_data = x_data * 0.1 + 0.3 # 定义变量 Weights = tf.Variable(tf.random.uniform([1], -1.0, 1.0)) biases = tf.Variable(tf.zeros([1])) # 定义模型 y = Weights*x_data + biases # 定义损失函数 loss = tf.reduce_mean(tf.square(y-y_data)) # 定义优化器 optimizer = tf.optimizers.SGD(0.5) # 训练模型 for step in range(201): optimizer.minimize(loss, var_list=[Weights, biases]) if step % 20 == 0: print(step, Weights.numpy(), biases.numpy()) 功能:提供了简单高效的数据挖掘和数据分析工具,包括分类、回归、聚类等多种算法。
代码案例:使用scikit-learn进行简单线性回归
from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn import datasets # 加载波士顿房价数据集 boston = datasets.load_boston() X = boston.data y = boston.target # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 创建并训练模型 model = LinearRegression() model.fit(X_train, y_train) # 预测并打印分数 score = model.score(X_test, y_test) print("模型得分: %.2f%%" % (score*100)) 功能:Pillow是PIL(Python Imaging Library)的一个派生,提供了丰富的图像处理功能。
代码案例:打开一个图片,将其尺寸缩小一半,并保存新图片
from PIL import Image # 打开图片 with Image.open('example.jpg') as img: # 缩小图片 img_resized = img.resize((img.width // 2, img.height // 2)) # 保存新图片 img_resized.save('example_resized.jpg') 功能:用于抓取网页内容并提取结构化数据的框架,适用于数据挖掘、监测等场景。
代码案例:Scrapy简单爬虫示例(仅展示基本结构,完整运行需根据目标网站调整)
import scrapy class MySpider(scrapy.Spider): name = 'myspider' start_urls = ['http://www.example.com/'] def parse(self, response): page_title = response.css('title::text').get() yield {'title': page_title} 请注意,实际使用时,应遵守网站的robots.txt规则和相关法律法规,尊重网站版权和隐私政策。
功能:这两者都是用于创建图形用户界面(GUI)的库,基于Qt框架。PyQt是社区支持的版本,而PySide由Qt公司官方维护。
代码案例:使用PyQt5创建一个简单的窗口
from PyQt5.QtWidgets import QApplication, QWidget # 创建应用程序对象 app = QApplication([]) # 创建窗口 window = QWidget() window.setWindowTitle('My First PyQt App') # 显示窗口 window.show() # 进入主事件循环 app.exec_() 功能:Python中的异步编程库,用于编写单线程并发代码,利用协程、事件循环等机制处理并发任务。
代码案例:异步下载网页
import asyncio import aiohttp async def fetch(session, url): async with session.get(url) as response: return await response.text() async def main(): async with aiohttp.ClientSession() as session: html = await fetch(session, 'https://www.example.com') print(html[:100]) # 运行异步函数 loop = asyncio.get_event_loop() loop.run_until_complete(main()) 功能:一个用于解析HTML和XML文档的库,常用于网络爬虫中提取数据。
代码案例:解析HTML页面,提取标题
from bs4 import BeautifulSoup import requests url = 'https://www.example.com' response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') title = soup.find('title').text print(title) 功能:基于matplotlib,提供了高级接口用于绘制统计图形,使得数据可视化更加美观和直观。
代码案例:绘制散点图矩阵
import seaborn as sns import pandas as pd # 载入内置数据集 iris = sns.load_dataset("iris") # 绘制散点图矩阵 sns.pairplot(iris, hue="species") plt.show() 功能:用于大规模数据处理、机器学习任务中的轻量级并行处理和重复计算结果的缓存。
代码案例:并行计算两个列表的乘积
from joblib import Parallel, delayed def multiply(x, y): return x * y numbers1 = [1, 2, 3, 4] numbers2 = [5, 6, 7, 8] results = Parallel(n_jobs=2)(delayed(multiply)(x, y) for x, y in zip(numbers1, numbers2)) print(results) 这些模块和库展示了Python在机器学习、数据科学、图像处理、网络爬虫等多个领域的广泛应用。通过不断学习和实践,你可以更加灵活地运用这些工具来解决实际问题。