Python: 空格转制表符?

5 投票
4 回答
11216 浏览
提问于 2025-04-16 14:58

我有一个Python文件(/home/test.py),里面混用了空格和制表符(Tab)。

请问有没有一种编程的方法(注意:是编程的方法,不是用编辑器)可以把这个文件转换成只使用制表符?也就是说,把文件里所有的4个空格替换成一个制表符

如果能提供一段Python代码示例或者一个Linux命令来实现这个功能,我会非常感激。谢谢!

4 个回答

0

另一种方法是安装一个叫做 black-with-tabs 的软件包。然后运行 black(如果你之前已经安装了原版的 black,需要先卸载它)。

black test.py
1

你可以试着逐行读取文件,然后进行替换,比如这样:

import fileinput
for line in fileinput.FileInput("file",inplace=1):
    print line.replace("    ","\t")

或者你可以试试一些*nix系统的工具,比如 sed/awk

$ awk '{gsub(/    /,"\t")}1' file > temp && mv temp file

$ ruby -i.bak -ne '$_.gsub!(/    /,"\t")' file
8

听起来这个任务可以用 sed 来完成:

sed -e 's/    /\t/g' test.py > test.new

[把 \t 替换成真正的制表符]

不过……

每个缩进层级使用4个空格。

--PEP 8 -- Python代码风格指南

撰写回答