您当前的位置:首页 > 计算机 > 软件应用 > 开发工具(IDE)

使用autopep8自动批量调整代码以符合PEP-8规范

时间:04-18来源:作者:点击数:

PEP-8是Python的官方编码规范,像Huawei和Google这样的公司也会基于此出台用于公司内部的编码规范。PEP-8的文档地址在 这里 。

可以使用Python的外部工具,对代码进行自动检查和==(单文件内)批量==调整,使其满足PEP-8的(大部分)要求。步骤如下:

1. 安装autopep8
pip install autopep8
请添加图片描述
2. 配置autopep8

在“File - Settings - Tools - External Tools”中添加外部工具,具体参数如下:

Name: 				autopep8(可以自己起名字) 
Program: 			autopep8
Arguments: 			--in-place --aggressive $FilePath$
Working directory: 	$ProjectFileDir$
Output filters: 	$FILE_PATH$\:$LINE$\:$COLUMN$\:.*
请添加图片描述
3. 例子代码

写了一段简单的代码,里面有4种不符合PEP-8规范的编码习惯

3.1. 用于分隔多个参数的逗号之后,缺少空格

请添加图片描述

3.2. 方法之间空行数量不足

请添加图片描述

3.3. 单行文本超长

请添加图片描述

3.4. 将多行代码写在一行

请添加图片描述
4. 自动调整

右键单击需要调整的文件,选择“External Tools - autopep8(步骤2中起的名字)”

即可实现自动((单文件内)批量)检查代码规范,并且自动调整代码格式。

注意:autopep8能对大部分问题进行自动调整,但不是全部。例如3.3的超长文本就不行。

请添加图片描述
5. 手动调整

对于不成功的部分,可以手动调用修改建议进行调整。

请添加图片描述
6. 多文件批量修改

autopep8的命令行执行方式是:

autopep8 --in-place --aggressive filename.py

所以可以编写批处理脚本 autopep8_srcipt_generator.cmd :

@echo= >./autopep8_batch_exec.bat
for /r activity_handlers %%i in (*.py) do @echo autopep8 --in-place --aggressive %%i >>./autopep8_batch_exec.bat
for /r application %%i in (*.py) do @echo autopep8 --in-place --aggressive %%i >>./autopep8_batch_exec.bat
for /r performance_analyzer %%i in (*.py) do @echo autopep8 --in-place --aggressive %%i >>./autopep8_batch_exec.bat
for /r rcqueues %%i in (*.py) do @echo autopep8 --in-place --aggressive %%i >>./autopep8_batch_exec.bat
for /r standard %%i in (*.py) do @echo autopep8 --in-place --aggressive %%i >>./autopep8_batch_exec.bat
for /r util %%i in (*.py) do @echo autopep8 --in-place --aggressive %%i >>./autopep8_batch_exec.bat
for /r xml_parser %%i in (*.py) do @echo autopep8 --in-place --aggressive %%i >>./autopep8_batch_exec.bat
@echo autopep8 --in-place --aggressive main.py >>./autopep8_batch_exec.bat
@echo del autopep8_batch_exec.bat >>./autopep8_batch_exec.bat

运行后可以在当前目录下自动查找python文件,生成 autopep8_batch_exec.bat

然后运行 autopep8_batch_exec.bat,可以批量修改所有文件中的编码规范。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门