我在Python中有一个非常大的项目(超过3000行),不幸的是,语法并不尊重现在需要的PEP8。我特别关注将所有功能从camelCase
样式重命名为snake_case
样式的方式。
到目前为止,我只找到this answer,拒绝在PyCharm中自动重命名所有变量的可能性,并建议手动执行,我不想这样做,因为有数千个变量在代码中。
那么,有没有办法,如何根据上述规则自动重命名所有变量?
我对函数/正则表达不感兴趣,这对于一个字符串来说,我真的只对"集体"感兴趣。溶液
答案 0 :(得分:1)
您可以尝试camel-snake-pep8,如官方说明:
重构工具,帮助将骆驼案转换为蛇案和副案 在Python程序中也是如此,符合PEP-8风格指南。 它使用/滥用Python-Rope来查找和执行更改。该 程序以交互方式显示建议的更改并查询用户 是否接受变更。
要安装,请运行以下命令:
$ <activate your virtual environment>
$ pip install rope colorama
$ wget https://raw.githubusercontent.com/abarker/camel-snake-pep8/master/src/camel_snake_pep8/camel_snake_pep8.py
然后转到项目文件夹并运行以下命令:
$ python2 camel_snake_pep8.py . *.py
该程序可用于重构Python 2或Python 3代码,但必须使用Python 2 运行。这是因为,截至2017年3月,Python-Rope仅支持Python 2(据说Python 3版本正在进行中)。 有时这不起作用,因为python 3的特定语法,例如:
def pick(l: list, index: int) -> int:
return l[index]
在这种情况下,您必须使这些表达式的语法与python2兼容。请投票/帮助绳索项目issue以支持python3。