自动向后移植 python 2.7 到 2.6

Automatically backport python 2.7 to 2.6

我需要 运行 Python 2.6 下的一些 Python 2.7 代码,我想知道如何实现自动化。

一些具体的简单更改是

sed -i -e 's/:,d/:d/g' -e 's/{0}/set([0])/g' foo.py

不过,我还需要更换

with open(foo) as f, open(bar) as b:
    ...

with open(foo) as f:
 with open(bar) as b:
    ...

这对我来说不太明显(我需要正确缩进,而我的 sed-foo 在这里还不够)。

有什么建议吗?

不,不要使用 sed。您需要的是理解重构或宏的 IDE。例如,这是我在 vim:

中会做的
  • 搜索 with A as a, with B as B: 模式

  • 开始录制宏qa

  • 找到逗号f,

  • 换成冒号r:

  • 删除space然后输入换行符lx<enter>

  • Tab 或使用 spaces 缩进

  • q停止录音

然后您循环搜索并按 @a 重播宏。