在多个python文件中自动将空格转换为制表符的最简单方法是什么?

时间:2012-03-15 18:17:52

标签: python

  

可能重复:
  Tool to convert python indentation from spaces to tabs?

我有许多需要重新格式化的python文件(> 1000),因此仅使用标签进行缩进(是的,我知道PEP-8,但这是公司的编码标准)。最简单的方法是什么?也许Python中的一些脚本会os.walk对文件进行操作并做一些魔术?我不能只grep文件内容,因为文件可能格式错误(混合标签和空格,不同数量的空格)但Python仍会运行它,我会在转换后恢复工作。

2 个答案:

答案 0 :(得分:5)

我建议在PyPI上使用这个Reindent脚本将所有可怕的不一致文件转换为一致的PEP-8(4空间缩进)版本。

此时再次尝试说服那些决定选项卡上的公司编码标准是愚蠢的,应该使用PEP-8样式,如果失败则可以使用sed(如hc_的答案)或创建Python用每个行开头的单个制表符替换4个空格的脚本。

答案 1 :(得分:3)

怎么样

find . -type f -iname \*.py -print0 | xargs -0 sed -i 's/^    /\t/'

此命令查找当前目录下的所有.py文件,并使用选项卡替换它在其中找到的每四个连续空格。

刚刚注意到Spacedman的评论。这种方法不会正确处理“”“字符串内部行开头的空格。