将python缩进从空格转换为制表符的工具?

时间:2008-12-03 21:26:26

标签: python indentation

我有一些使用空格进行缩进的.py文件,我想将它们转换为标签。

我可以很容易地使用正则表达式来解决一些问题,但我可以想到这种方法可能会失败的几个边缘情况。是否有一个工具通过解析文件和确定缩进级别来实现这一点,与python解释器的工作方式相同?

5 个答案:

答案 0 :(得分:16)

如果要转换的文件不多,您可以在vim中打开它们,然后使用:retab命令。

有关详细信息,请参阅the vim documentation

答案 1 :(得分:16)

Python包含相反的脚本(制表符到空格)。对我来说是C:\Python24\Tools\Scripts\reindent.py

答案 2 :(得分:10)

:retab将用空格交换制表符,并且:重新开始!将使用制表符交换空格。 1个标签= 4个空格,4个空格= 1个标签,具体取决于您的标签设置。

答案 3 :(得分:4)

如果你使用Linux,你也可以使用unexpand

  

将每个FILE中的空格转换为制表符,   写入标准输出。没有   FILE,或者当FILE是 - 时,读取标准   输入

答案 4 :(得分:3)

在emacs中,M-x tabify会尽可能将空格转换为制表符。您可能希望适当地设置tab-width变量。

我不知道这是否解决了你的问题,即以与python解释器相同的方式解释空格,但是你总是可以加载python-mode并使用M-x indent-region