2012-01-10 24 views
1

我在我的python代碼中每行嚴格執行80個字符,但偶爾我必須將一行字符串分解爲兩成以下Python代碼格式化:如何避免由斷線器切斷的字符串中的多餘空格「」

print time.strftime("%m/%d/%Y %I:%M:%S \ 
    %p",time.localtime(os.path.getmtime(fname))) 

在這種情況下,輸出將有多餘的空格在「AM/PM」的面前,就像

foo.dat was last modified: 01/10/2012 02:53:15     AM 

有解決這個簡單的方法,只需要麼避免切割關閉字符串,或在這種情況下允許長行,但是,我想知道是否還有其他更內在的方式解決這個問題的同時允許發生斷線和斷線。第二行由編輯器自動縮進,我不想改變這一點。謝謝。

+1

的可能重複(http://stackoverflow.com/questions/5437619/python-style-line-continuation-with-strings) – geoffspear 2012-01-10 15:07:01

回答

7

推薦的方法做到這一點是要避免使用完全\通過使用括號來代替。另外,請使用連續字符串連接成一個字符串的事實。例如:[?Python的風格 - 續行用繩子]

print time.strftime(("%m/%d/%Y %I:%M:%S " 
    "%p"), time.localtime(os.path.getmtime(fname))) 
+4

你甚至不需要在字符串周圍的額外parens。 – 2012-01-10 15:13:53

2

是的。

>>> x = "one two three "\ 
... "four five six" 
>>> x 
'one two three four five six' 

爲了清楚起見,在Python源文件:

x = "one two three "\ 
"four five six" 

print time.strftime("%m/%d/%Y %I:%M:%S"\ 
" %p",time.localtime(os.path.getmtime(fname))) 
+0

顯然我不能將你的答案應用於上面的字符串實際用於格式化的例子,還是我錯過了某些東西? – nye17 2012-01-10 15:01:56

+0

適合我。這是Python解釋器外殼(即點由python shell生成)。查看我的編輯,瞭解您將放入Python源文件中的內容。 – Joe 2012-01-10 15:06:30