Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
自动将python 2.7向后移植到2.6_Python_Python 2.7_Sed_Backport - Fatal编程技术网

自动将python 2.7向后移植到2.6

自动将python 2.7向后移植到2.6,python,python-2.7,sed,backport,Python,Python 2.7,Sed,Backport,我需要在Python2.6下运行一些Python2.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: ... 与 这对我来说不太明显(我需要正确的缩进,我的sed-foo在这里是不够的) 有什么建议吗?没有,不要使用sed。您需要的是一个理解重构或宏的IDE。例如,下面是我在vim

我需要在Python2.6下运行一些Python2.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:
    ...

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


有什么建议吗?

没有,不要使用
sed
。您需要的是一个理解重构或宏的IDE。例如,下面是我在
vim
中要做的事情:

  • 搜索A为A、B为B的
    模式

  • 开始录制宏
    qa

  • 找到逗号
    f,

  • 将其替换为冒号
    r:

  • 删除空格,然后输入换行符
    lx

  • 制表符或使用空格缩进

  • q
    停止录制


然后重复搜索并按
@a
重播宏。

您的代码库中是否真的有那么多带有x,y语句的
值得自动替换而不是简单地自动发现?我认为在一般情况下,
sed
不适合做这项工作——你可能会想使用Python自己的
AST
模块或类似的东西——真正理解Python缩进的东西。@JohnZwinck:我希望有人已经有了这方面的东西;当然,我们可以手动完成,但我认为自动化更可靠。这假设我希望更改是永久性的(如committed to git)。我不希望这样。如果您使用git,有什么问题?创建一个专门为Python 2.6代码设计的分支。分支是分散的,因此您不必推送代码。
with open(foo) as f:
 with open(bar) as b:
    ...