PyCharm - 如何自动将项目中的所有标识符重命名为snake_case?

时间:2017-07-22 20:56:36

标签: python python-3.x pycharm

我在Python中有一个非常大的项目(超过3000行),不幸的是,语法并不尊重现在需要的PEP8。我特别关注将所有功能从camelCase样式重命名为snake_case样式的方式。

到目前为止,我只找到this answer,拒绝在PyCharm中自动重命名所有变量的可能性,并建议手动执行,我不想这样做,因为有数千个变量在代码中。

那么,有没有办法,如何根据上述规则自动重命名所有变量?

我对函数/正则表达不感兴趣,这对于一个字符串来说,我真的只对"集体"感兴趣。溶液

1 个答案:

答案 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。