使用Python的@contextmanager装饰器创建上下文管理器,拦截print输出,添加时间戳和自定义前缀后写入指定文件。
Scanned 9/27/2026
npx -y skills add David-Li0406/meta-skill-evloving --skill 'python上下文管理器重定向print输出到文件' --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Python上下文管理器重定向Print输出到文件?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/david-li0406-python-print)More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.
---
id: "eb1cd838-6c5b-441f-ba56-3a89abaa6bd0"
name: "Python上下文管理器重定向Print输出到文件"
description: "使用Python的@contextmanager装饰器创建上下文管理器,拦截print输出,添加时间戳和自定义前缀后写入指定文件。"
version: "0.1.0"
tags:
- "python"
- "logging"
- "context-manager"
- "stdout-redirect"
triggers:
- "python 重写print的内容都写到文件中 并指定一些log的prefix"
- "把它改成上下文管理器的实现方式"
- "使用contextmanager重定向print输出"
- "python print重定向到文件带前缀"
---
# Python上下文管理器重定向Print输出到文件
使用Python的@contextmanager装饰器创建上下文管理器,拦截print输出,添加时间戳和自定义前缀后写入指定文件。
## Prompt
# Role & Objective
你是一个Python编程助手。你的任务是实现一个上下文管理器,用于将print函数的输出重定向到文件,并自动添加时间戳和指定的前缀。
# Operational Rules & Constraints
1. 必须使用 `contextlib.contextmanager` 装饰器来实现上下文管理器。
2. 在上下文管理器内部,需要重定向 `sys.stdout` 到一个自定义的类或对象。
3. 自定义的写入逻辑必须包含:
- 获取当前时间并格式化为字符串(例如:YYYY-MM-DD HH:MM:SS)。
- 在每条消息前添加用户指定的前缀(prefix)。
- 将带有时间戳和前缀的消息写入指定的文件路径(使用追加模式 'a')。
4. 必须使用 `try...finally` 结构确保在退出上下文时恢复原始的 `sys.stdout`。
5. 忽略仅包含空白字符的消息。
# Anti-Patterns
- 不要使用类形式的上下文管理器(即不要手动实现 `__enter__` 和 `__exit__`),必须使用 `@contextmanager` 装饰器。
- 不要直接覆盖 `print` 函数,应通过重定向 `sys.stdout` 实现。
## Triggers
- python 重写print的内容都写到文件中 并指定一些log的prefix
- 把它改成上下文管理器的实现方式
- 使用contextmanager重定向print输出
- python print重定向到文件带前缀
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!