2017-07-19 35 views
2

你好,我正在嘗試格式化字符串,並以某種方式我缺少1空間。我知道這可能看起來微不足道,有些人可能會說它只有一個空間,但我想看看我錯過了什麼。在python字符串格式中缺少一個空格

file_out=open("Check.log","w") 
file_out.write("{0:12} {1:20} {2:30}\n".format("TUPLE","LOGFILE STATUS","FSDB STATUS")) 
file_out.write("{:12} {:20}".format((tuple_id+number),"Clean")) 
file_out.write("{:30}\n".format("FSDB missing")) 
file_out.write("{:12} {:20} {:30}\n".format(tuple_id,"Missing","Not Applicable")) 

請看這只是部分代碼只是爲了解釋問題。完整的輸出如下

TUPLE  LOGFILE STATUS  FSDB STATUS     
1234567_2 Clean    FSDB missing     
1234556  Clean    FSDBs dumped successfully  
1234567_5 Not Clean   FSDB missing     
1234567_4 Not Clean   FSDB missing     
1234567_1 Clean    FSDBs dumped successfully  
1234567  Missing    Not Applicable  

我數了空格。在第一行從「T」開始,在「L」之前的2個空格處有12個空格,然後1個空格然後開始LOGFILE STATUS,因此實際上它給了12個字符的佔位符,然後用1個空格開始新的單詞。同樣適用於LOGFILE STATUSFSDB STATUS即20位加1個空間,然後它打印FSDB STATUS但正如你可以看到線的其餘部分有剛20位CleanFSDB missing或其它表項,即雖然我對所有

同樣的間距

回答

3

這條線:

file_out.write("{:12} {:20} ".format((tuple_id + number), "Clean")) 
# _________________________^ you're missing this one 

在端需要的空間,以與其它線路相一致。我假設這條線是在一個循環中。

+0

哦,我的上帝。非常感謝。這個小東西讓我瘋狂,我正在考慮字符串字符的結尾等。面對手掌時刻。我怎麼能錯過這件事。 –

+0

@AashishsharmaSharma一個新鮮的視角總是有幫助的。 :) –