如何批量运行autopep8处理所有Python文件,排除migrations目录?
批量运行autopep8并排除migrations目录
当然有办法,不用逐个文件执行,下面是几种实用的批量处理方式:
方法一:使用find命令(通用跨平台)
这是最常用的方式,能直接遍历目录并跳过migrations下的所有Python文件:
find . -name "*.py" -path "*/migrations/*" -prune -o -exec autopep8 --in-place --aggressive --aggressive {} \;
参数说明:
.:从当前目录开始递归查找-name "*.py":只筛选Python文件-path "*/migrations/*" -prune:匹配到migrations目录下的文件时直接跳过,不执行后续命令-o -exec ... {} \;:对其他符合条件的文件执行指定的autopep8命令
方法二:用glob配合xargs(部分系统支持)
如果你的系统支持glob命令,也可以用这种方式:
glob "**/*.py" --exclude="**/migrations/**/*.py" | xargs autopep8 --in-place --aggressive --aggressive
注意事项
- 执行前建议先提交当前代码到版本控制系统(比如git),或者备份文件,避免autopep8的修改带来意外问题
- 如果需要排除更多目录或文件,只需在find命令中添加额外的
-path "*/xxx/*" -prune条件即可
内容的提问来源于stack exchange,提问作者tobias
相关产品推荐
相关产品推荐

