如何批量修复PyCharm检查警告,例如将所有 "raise "语句转换为Python 3语法?

问题描述 投票:0回答:1

问题是:如何批量应用PyCharm检查快速修复?大概在IntelliJ、CLion等软件中也有同样的功能吧] 。

我正在将Python 2.7的代码库移植到Python 3.8中,希望每次只做一种修改[例如,替换掉 raise Exception, "message"raise Exception("message")],审查它,并测试它。最终我将尝试使用 python-modernize但PyCharm可以批量进行特定类型的兼容性修复吗?

您可以 配置 PyCharm的 Code compatibility inspection 来检查,比如说,Python 2.7 + 3.7 + 和 3.8,然后是 验收 在您的整个项目或较小范围内。或者使用 Code > Run Inspection by Name... 菜单命令来运行 Code compatibility inspection 与一个临时选择的选项和范围。警告会列出这样的项目。

  • Python version 3.7, 3.8 do not support this syntax
  • Python version 3.7, 3.8 do not have module __builtin__
  • Python version 3.7, 3.8 do not have method xrange
  • Python version 3.7, 3.8 do not have module cPickle
  • dict.iterkeys(), dict.iteritems() and dict.itervalues() methods are not available in py3
  • basestring type is not available in py3

如果你选择了前两种类型的警告的例子,PyCharm就可以做到 速战速决 喜欢 Convert raise statement to supported form. 对于上面列出的其他警告,它只能提出抑制警告:-(

我有几百个这样的警告! 如何批量修复它们?

python-3.x python-2.7 intellij-idea pycharm refactoring
1个回答
1
投票

有一个可爱的技巧。

  1. Inspection Results 工具窗口,点击 Expand All 按钮(或键入Command-+或键入您的键盘图中的任何等价物)。
  2. 键入Command-F(或同等的)来查找您所选择的检查警告类型的例子,例如搜索 syntax.
    • (PyCharm不会为此打开一个 "查找 "对话框,但你仍然可以键入搜索文本,它将以叠加的方式显示。)
  3. Edit &gt.(或输入Command-A或等效字体)。Select All (或键入Command-A或等价物)。
  4. 现在点击按钮来应用快速修复!

(如果你知道如何让PyCharm修复其他的兼容性警告,请添加更多答案。否则,就会进入 modernize.)

© www.soinside.com 2019 - 2024. All rights reserved.