
Python 作为一门通用编程语言,其丰富的库生态系统在基础设施开发领域发挥着重要作用。本文精选了30个适用于基础设施开发的Python库,每个库均配有实用说明、应用场景和代码示例。
实用说明:简化类的定义和序列化操作
场景:数据模型定义、API数据传输
import attr
from cattrs import structure
@attr.s
class User:
id: int = attr.ib()
name: str = attr.ib()
user_dict = {"id": 1, "name": "Alice"}
user = structure(user_dict, User)
print(user) # User(id=1, name='Alice')实用说明:简化日志记录配置
场景:应用日志管理、调试跟踪
from loguru import logger
logger.add("file.log")
logger.debug("This is a debug message")
logger.error("This is an error messge")实用说明:自动格式化Python代码为PEP8规范
场景:代码规范检查、团队协作
autopep8 --in-place --aggressive --aggressive script.py实用说明:系统监控和进程管理
场景:资源监控、性能分析
import psutil
# 获取CPU使用率
cpu_percent = psutil.cpu_percent(interval=1)
# 获取内存信息
memory = psutil.virtual_memory()
print(f"CPU: {cpu_percent}%, Memory: {memory.percent}%")实用说明:URL解析和操作
场景:Web开发、API调用
from furl import furl
f = furl(' http://www.google.com/?name=john')
f.args['age'] = 28
print(f.url) # http://www.google.com/?name=john&age=28实用说明:函数重试机制
场景:网络请求、外部服务调用
from tenacity import retry, stop_after_attempt
@retry(stop=stop_after_attempt(3))
def call_external_api():
# 模拟API调用
raise Exception("Temporary failure")实用说明:类型注解支持
场景:代码可读性、静态检查
from typing import List, Dict
def process_users(users: List[Dict[str, str]]) -> None:
for user in users:
print(user['name'])实用说明:命令行参数解析
场景:命令行工具开发
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('--input', required=True, help='input file')
args = parser.parse_args()实用说明:更易用的命令行标志定义
场景:大型项目配置管理
from absl import app, flags
FLAGS = flags.FLAGS
flags.DEFINE_string('name', 'default', 'Your name')
def main(argv):
print(f"Hello, {FLAGS.name}!")
if __name__ == '__main__':
app.run(main)实用说明:包管理和虚拟环境集成
场景:项目依赖管理
pipenv install requests
pipenv shell实用说明:文件系统监控
场景:文件同步、自动重载
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class FileHandler(FileSystemEventHandler):
def on_modified(self, event):
print(f"File {event.src_path} has been modified")
observer = Observer()
observer.schedule(FileHandler(), path='.', recursive=True)
observer.start()实用说明:文件路径模式匹配
场景:批量文件处理
import glob
# 查找所有Python文件
python_files = glob.glob("**/*.py", recursive=True)
print(python_files)实用说明:面向对象的路径操作
场景:跨平台文件操作
from pathlib import Path
path = Path("data/file.txt")
path.parent.mkdir(parents=True, exist_ok=True)
path.write_text("Hello, World!")实用说明:环境变量管理
场景:应用配置管理
from environs import Env
env = Env()
env.read_env() # 读取.env文件
debug = env.bool("DEBUG", False)
port = env.int("PORT", 8000)实用说明:简单易用的调试工具
场景:代码调试、问题排查
import pysnooper
@pysnooper.snoop()
def process_data(data):
result = []
for item in data:
result.append(item * 2)
return result实用说明:进度条显示
场景:长时间任务进度跟踪
from tqdm import tqdm
import time
for i in tqdm(range(100)):
time.sleep(0.1) # 模拟任务实用说明:Linux命令封装
场景:系统管理、自动化脚本
import sh
# 执行系统命令
result = sh.ls("-l")
print(result)实用说明:模拟数据生成
场景:测试数据生成、演示数据
from faker import Faker
fake = Faker()
print(fake.name())
print(fake.email())实用说明:时间日期处理
场景:时间格式化、时区转换
import arrow
now = arrow.now()
print(now.format('YYYY-MM-DD HH:mm:ss'))实用说明:简化邮件发送
场景:邮件通知、报警系统
import yagmail
yag = yagmail.SMTP('user@gmail.com', 'password')
yag.send(to='recipient@example.com', subject='Test', contents='Hello!')实用说明:字符编码检测
场景:文件编码识别、数据清洗
import chardet
with open('file.txt', 'rb') as f:
result = chardet.detect(f.read())
print(result['encoding'])实用说明:汉字转拼音
场景:中文数据处理、搜索优化
from pypinyin import pinyin
result = pinyin('中文')
print(result) # [['zhōng'], ['wén']]实用说明:文档生成工具
场景:项目文档编写
sphinx-quickstart docs
sphinx-build -b html docs/source docs/build实用说明:模板引擎
场景:配置文件生成、报告生成
from jinja2 import Template
template = Template("Hello {{ name }}!")
result = template.render(name="World")
print(result)实用说明:命令行界面创建
场景:CLI工具开发
import click
@click.command()
@click.option('--count', default=1, help='Number of greetings')
def hello(count):
for _ in range(count):
click.echo('Hello World!')
if __name__ == '__main__':
hello()实用说明:分布式计算框架
场景:并行计算、任务分发
import ray
@ray.remote
def process_data(data):
return data * 2
ray.init()
results = ray.get([process_data.remote(i) for i in range(10)])实用说明:进程管理工具
场景:服务守护、进程监控
; supervisor.conf
[program:myapp]
command=python app.py
directory=/path/to/app
autostart=true实用说明:定时任务调度
场景:定时任务、后台作业
from apscheduler.schedulers.blocking import BlockingScheduler
def job():
print("Job running...")
scheduler = BlockingScheduler()
scheduler.add_job(job, 'interval', minutes=1)
scheduler.start()实用说明:嵌套数据结构处理
场景:JSON数据处理、配置解析
from glom import glom
data = {'a': {'b': {'c': 'd'}}}
result = glom(data, 'a.b.c')
print(result) # 'd'实用说明:REST API开发框架
场景:Web API开发
from rest_framework import serializers, viewsets
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ['id', 'name']
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer这些库覆盖了基础设施开发的多个方面,包括系统监控、数据处理、任务调度、工具开发等。选择合适的库可以显著提高开发效率,建议根据具体需求进行选择和使用。
“无他,惟手熟尔”!有需要的用起来!
如果你觉得这篇文章有用,欢迎点赞、转发、收藏、留言、推荐❤!
本文分享自 Nicholas与Pypi 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!