转换python文件中的空格?

时间:2010-12-03 23:31:40

标签: python

我在python中有一些标签格式的代码,我在python中有一些空格式代码。

在痛苦中集成代码......我的编辑器希望在制表符或空格中工作,但不能同时工作。

linux中是否有命令行函数,或者,是否会以某种方式转换python代码格式?

6 个答案:

答案 0 :(得分:3)

reindent.py是一个漂亮的实用程序脚本,可以将任何python .py文件转换为使用4空格缩进而没有制表符的文件。

这对于从不同来源“规范化”代码非常有用,假设您愿意接受4空间标准。 (或者,如果您需要选项卡,则可以运行reindent.py,然后运行unix unexpand命令。)

PS。您的Python安装可能已将reindent.py安装在Tools或Examples文件夹中。在Ubuntu上,它由python-examples包提供,位于/usr/share/doc/python2.6/examples/Tools/scripts/reindent.py

答案 1 :(得分:2)

'man expand'获取一些信息

它在Debian的coreutils中

答案 2 :(得分:2)

您可以使用展开 unexpand Unix命令。

一般来说,如果我在vim中编码,我会自动将标签转换为空格。

我的〜/ .vimrc看起来像这样:

set expandtab
set tabstop=4

答案 3 :(得分:1)

许多编辑器(例如vi)会在缩进行时将制表符转换为空格或从空格转换。因此,根据需要设置选项卡设置,然后将整个文件缩进1步,然后取消一步,完成。

Vim命令:

1GVG  <-- select entire file (i have this bound to CTRL-A)
>     <-- indent one step
1GVG  <-- select again 
<     <--- unindent one step

答案 4 :(得分:0)

Perl怎么样:perl -pe 's/(.*?)\t/$1.(" " x (4-length($1)%4))/ge' file_with_tabs.txt

python(这是来自Markdown的来源......):

def _detab_sub(self, match):
    g1 = match.group(1)
    return g1 + (' ' * (self.tab_width - len(g1) % self.tab_width))
def _detab(self, text):

    if '\t' not in text:
        return text
    return self._detab_re.subn(self._detab_sub, text)[0]

答案 5 :(得分:0)

一个优秀的程序员编辑器将有一个命令将标签转换为空格或反之亦然;您也可以在编辑器中进行搜索和替换。

相关问题