Skip to content

输出重定向到文件后丢失颜色 ​

🎨 用 >> out.txt 重定向后,文件里都是颜色转义码 \x1b[...。

原因 ​

click.secho / loguru 检测到是终端时输出彩色转义序列。重定向到文件时,若仍被误判为终端(或强制开色),转义码会进文件。

解决 ​

1. 强制无颜色 ​

loguru 默认根据是否 TTY 决定颜色。重定向时通常自动关色。若仍异常,禁用:

python
logger.add(sys.stderr, colorize=False)

2. 用 col / sed 清理 ​

已产生的文件清理颜色码:

bash
sed -r 's/\x1B\[[0-9;]*[mK]//g' out.txt > clean.txt

3. 用 script 保留 ​

若想保留彩色同时又存文件,用 script 命令录制终端。

相关文档 ​

基于 VitePress 构建 · 教学用途