
本文介绍如何通过 Ruff 的 --select 与 --fix 组合,仅对特定规则(如 F401)自动修复,避免全局修改,提升代码审查的可控性与安全性。
本文介绍如何通过 ruff 的 `--select` 与 `--fix` 组合,仅对特定规则(如 f401)自动修复,避免全局修改,提升代码审查的可控性与安全性。
Ruff 作为高性能 Python 代码检查与自动修复工具,支持高度精细化的规则控制。当你只需修复某类问题(例如未使用的导入 F401),而不希望触发其他规则的格式化或重构时,可借助 --select 显式限定目标规则,并配合 --fix 启用自动修正。
基本语法
ruff check --select <rule_id> --fix [path...]</rule_id>
其中 是 Ruff 规则编号(如 F401、E501、UP035),[path...] 可选,用于指定检查范围(默认为当前目录递归)。
实用示例
✅ 修复当前项目中所有 F401(未使用的导入)问题:
ruff check --select F401 --fix
✅ 仅修复单个文件中的 F401:
ruff check --select F401 --fix src/utils.py
✅ 同时修复多个规则(如 F401 和 F841):
ruff check --select F401,F841 --fix
⚠️ 注意事项:
-
--fix仅对 Ruff 标记为 auto-fixable 的规则生效(F401 属于此类,会自动删除未使用的 import 语句); - 若需预览将要修改的内容,可先运行
ruff check --select F401 --fix --dry-run; - 多规则组合时,建议避免混用冲突规则(如同时启用
--select F401和--extend-select I001),以防修复逻辑相互干扰; - 推荐在提交前结合 Git 检查:
git diff --quiet || ruff check --select F401 --fix && git add .,实现轻量级 CI 集成。
通过精准选择规则,你既能保持代码风格一致性,又能规避“过度修复”带来的意外副作用——这是大型团队落地 Ruff 自动化治理的关键实践。










