可能重复:
Tool to convert python indentation from spaces to tabs?
我有许多需要重新格式化的python文件(> 1000),因此仅使用标签进行缩进(是的,我知道PEP-8,但这是公司的编码标准)。最简单的方法是什么?也许Python中的一些脚本会os.walk
对文件进行操作并做一些魔术?我不能只grep
文件内容,因为文件可能格式错误(混合标签和空格,不同数量的空格)但Python仍会运行它,我会在转换后恢复工作。
答案 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的评论。这种方法不会正确处理“”“字符串内部行开头的空格。