能否使用pylint校验文件EOF处是否存在换行符?
Pylint文件末尾换行检查配置说明
pylint本身已经内置了对应的检查能力,无需额外开发自定义规则即可实现需求:
内置规则信息
对应的规则ID为 C0304,规则名称为 trailing-newlines,默认处于开启状态,作用就是校验Python源文件末尾是否包含有效的换行符。
启用配置方式
- 命令行运行时若规则被禁用,可添加参数手动开启:
pylint --enable=C0304 待检查的文件/目录 - 若使用pylintrc配置文件,添加如下配置:
[MESSAGES CONTROL]
enable = C0304
- 若使用pyproject.toml配置,添加如下配置:
[tool.pylint.messages_control]
enable = ["C0304"]
规则触发效果
当被检查的文件末尾缺失换行符时,pylint会输出格式为C0304: Final newline missing (trailing-newlines)的报错信息,你可以自行调整该规则的严重等级,或者配合CI流程实现不符合规范的代码拦截。
如果你确实需要将该逻辑整合到自己开发的自定义pylint规则中,可以直接参考pylint内置C0304规则的实现逻辑:pylint的规则框架已经完成了所有待检查文件的读取操作,你只需要在自定义规则中校验文件内容的最后一个字符是否为换行符即可,无需自行实现文件遍历逻辑。
内容的提问来源于stack exchange,提问作者Bernana
相关产品推荐
相关产品推荐

