首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Python 30个基础设施开发相关的库,提高生产力

Python 30个基础设施开发相关的库,提高生产力

作者头像
用户11081884
发布2026-07-20 19:12:14
发布2026-07-20 19:12:14
530
举报

Python 作为一门通用编程语言,其丰富的库生态系统在基础设施开发领域发挥着重要作用。本文精选了30个适用于基础设施开发的Python库,每个库均配有实用说明、应用场景和代码示例。

1. attrs & cattrs

实用说明:简化类的定义和序列化操作

场景:数据模型定义、API数据传输

代码语言:javascript
复制
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')

2. loguru

实用说明:简化日志记录配置

场景:应用日志管理、调试跟踪

代码语言:javascript
复制
from loguru import logger

logger.add("file.log")
logger.debug("This is a debug message")
logger.error("This is an error messge")

3. autopep8

实用说明:自动格式化Python代码为PEP8规范

场景:代码规范检查、团队协作

代码语言:javascript
复制
autopep8 --in-place --aggressive --aggressive script.py

4. psutil

实用说明:系统监控和进程管理

场景:资源监控、性能分析

代码语言:javascript
复制
import psutil

# 获取CPU使用率
cpu_percent = psutil.cpu_percent(interval=1)
# 获取内存信息
memory = psutil.virtual_memory()
print(f"CPU: {cpu_percent}%, Memory: {memory.percent}%")

5. furl

实用说明URL解析和操作

场景Web开发、API调用

代码语言:javascript
复制
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

6. tenacity

实用说明:函数重试机制

场景:网络请求、外部服务调用

代码语言:javascript
复制
from tenacity import retry, stop_after_attempt

@retry(stop=stop_after_attempt(3))
def call_external_api():
    # 模拟API调用
    raise Exception("Temporary failure")

7. typing

实用说明:类型注解支持

场景:代码可读性、静态检查

代码语言:javascript
复制
from typing import List, Dict

def process_users(users: List[Dict[str, str]]) -> None:
    for user in users:
        print(user['name'])

8. argparse

实用说明:命令行参数解析

场景:命令行工具开发

代码语言:javascript
复制
import argparse

parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('--input', required=True, help='input file')
args = parser.parse_args()

9. absl-py

实用说明:更易用的命令行标志定义

场景:大型项目配置管理

代码语言:javascript
复制
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)

10. pipenv

实用说明:包管理和虚拟环境集成

场景:项目依赖管理

代码语言:javascript
复制
pipenv install requests
pipenv shell

11. watchdog

实用说明:文件系统监控

场景:文件同步、自动重载

代码语言:javascript
复制
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()

12. glob

实用说明:文件路径模式匹配

场景:批量文件处理

代码语言:javascript
复制
import glob

# 查找所有Python文件
python_files = glob.glob("**/*.py", recursive=True)
print(python_files)

13. pathlib

实用说明:面向对象的路径操作

场景:跨平台文件操作

代码语言:javascript
复制
from pathlib import Path

path = Path("data/file.txt")
path.parent.mkdir(parents=True, exist_ok=True)
path.write_text("Hello, World!")

14. environs

实用说明:环境变量管理

场景:应用配置管理

代码语言:javascript
复制
from environs import Env

env = Env()
env.read_env()  # 读取.env文件

debug = env.bool("DEBUG", False)
port = env.int("PORT", 8000)

15. pysnooper

实用说明:简单易用的调试工具

场景:代码调试、问题排查

代码语言:javascript
复制
import pysnooper

@pysnooper.snoop()
def process_data(data):
    result = []
    for item in data:
        result.append(item * 2)
    return result

16. tqdm

实用说明:进度条显示

场景:长时间任务进度跟踪

代码语言:javascript
复制
from tqdm import tqdm
import time

for i in tqdm(range(100)):
    time.sleep(0.1)  # 模拟任务

17. sh

实用说明Linux命令封装

场景:系统管理、自动化脚本

代码语言:javascript
复制
import sh

# 执行系统命令
result = sh.ls("-l")
print(result)

18. faker

实用说明:模拟数据生成

场景:测试数据生成、演示数据

代码语言:javascript
复制
from faker import Faker

fake = Faker()
print(fake.name())
print(fake.email())

19. arrow

实用说明:时间日期处理

场景:时间格式化、时区转换

代码语言:javascript
复制
import arrow

now = arrow.now()
print(now.format('YYYY-MM-DD HH:mm:ss'))

20. yagmail

实用说明:简化邮件发送

场景:邮件通知、报警系统

代码语言:javascript
复制
import yagmail

yag = yagmail.SMTP('user@gmail.com', 'password')
yag.send(to='recipient@example.com', subject='Test', contents='Hello!')

21. chardet

实用说明:字符编码检测

场景:文件编码识别、数据清洗

代码语言:javascript
复制
import chardet

with open('file.txt', 'rb') as f:
    result = chardet.detect(f.read())
    print(result['encoding'])

22. pypinyin

实用说明:汉字转拼音

场景:中文数据处理、搜索优化

代码语言:javascript
复制
from pypinyin import pinyin

result = pinyin('中文')
print(result)  # [['zhōng'], ['wén']]

23. sphinx

实用说明:文档生成工具

场景:项目文档编写

代码语言:javascript
复制
sphinx-quickstart docs
sphinx-build -b html docs/source docs/build

24. jinja2

实用说明:模板引擎

场景:配置文件生成、报告生成

代码语言:javascript
复制
from jinja2 import Template

template = Template("Hello {{ name }}!")
result = template.render(name="World")
print(result)

25. click

实用说明:命令行界面创建

场景CLI工具开发

代码语言:javascript
复制
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()

26. ray

实用说明:分布式计算框架

场景:并行计算、任务分发

代码语言:javascript
复制
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)])

27. supervisor

实用说明:进程管理工具

场景:服务守护、进程监控

代码语言:javascript
复制
; supervisor.conf
[program:myapp]
command=python app.py
directory=/path/to/app
autostart=true

28. apscheduler

实用说明:定时任务调度

场景:定时任务、后台作业

代码语言:javascript
复制
from apscheduler.schedulers.blocking import BlockingScheduler

def job():
    print("Job running...")

scheduler = BlockingScheduler()
scheduler.add_job(job, 'interval', minutes=1)
scheduler.start()

29. glom

实用说明:嵌套数据结构处理

场景JSON数据处理、配置解析

代码语言:javascript
复制
from glom import glom

data = {'a': {'b': {'c': 'd'}}}
result = glom(data, 'a.b.c')
print(result)  # 'd'

30. drf (Django REST Framework)

实用说明REST API开发框架

场景Web API开发

代码语言:javascript
复制
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

这些库覆盖了基础设施开发的多个方面,包括系统监控、数据处理、任务调度、工具开发等。选择合适的库可以显著提高开发效率,建议根据具体需求进行选择和使用。

“无他,惟手熟尔”!有需要的用起来!

如果你觉得这篇文章有用,欢迎点赞、转发、收藏、留言、推荐❤!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-12-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Nicholas与Pypi 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. attrs & cattrs
  • 2. loguru
  • 3. autopep8
  • 4. psutil
  • 5. furl
  • 6. tenacity
  • 7. typing
  • 8. argparse
  • 9. absl-py
  • 10. pipenv
  • 11. watchdog
  • 12. glob
  • 13. pathlib
  • 14. environs
  • 15. pysnooper
  • 16. tqdm
  • 17. sh
  • 18. faker
  • 19. arrow
  • 20. yagmail
  • 21. chardet
  • 22. pypinyin
  • 23. sphinx
  • 24. jinja2
  • 25. click
  • 26. ray
  • 27. supervisor
  • 28. apscheduler
  • 29. glom
  • 30. drf (Django REST Framework)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档