2011-04-03 56 views
0

我有一個python文件(/home/test.py),裏面有空格和製表符的混合。Python:空間到標籤?

是否存在編程方式(注意:編程,不使用編輯器)將此文件轉換爲僅使用製表符? (意思是用一個單一的tab代替現有的4-spaces)?

將不勝感激python代碼示例或linux命令做到上述。謝謝。

+2

SED -e * nix的工具「 s/{4}/\ t/g' – Javier 2011-04-03 04:35:09

+3

您不想將4個空格轉換爲製表符。這是針對PEP-8的。 4個空格是標準的 - 也適合你:)除此之外:看看Python的tabcleaner.py腳本並從那裏翻錄相關的代碼。 – 2011-04-03 04:39:02

+0

@Javier:謝謝。不知道如何應用它。 – user3262424 2011-04-03 04:46:17

回答

2

聽起來像是sed任務:

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

[把一個真實的標籤,而不是\ T]每個縮進層

但是......

使用4個空格。

- PEP 8 -- Style Guide for Python Code

+0

正是我在找的東西。謝謝。 – user3262424 2011-04-03 04:45:42

+1

@ user540009:我希望你參考PEP 8 :-) – Johnsyweb 2011-04-03 04:49:24

+0

謝謝。只是爲了記錄,你將如何用4個空格來替換每個「標籤」? (什麼是反向的'sed'命令)? – user3262424 2011-04-03 04:52:20

1

你可以嘗試遍歷文件和做更換如

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

,或者你可以嘗試像sed/awk

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

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

好的答案,雖然下面的一個班輪更好。 – user3262424 2011-04-03 04:46:01