2014-12-06 47 views
0

我正在尋找一行(如果我認爲使用的是str.join),如果單詞數量過多,則剪切長字符串。我開始時,但我不知道whow插入\n蟒蛇 - 在2行中剪切一個字符串

example = "Au Fil Des Antilles De La Martinique a Saint Barthelemy" 

nmbr_word = len(example.split(" ")) 
if nmbr_word >= 6: 
    # cut the string to have 

result = "Au Fil Des Antilles De La\nMartinique a Saint Barthelemy" 

感謝

+1

查看['textwrap'](https://docs.python.org/2/library/textwrap.html)模塊。它可以包裝文本以適應一定數量的字符(而不是一定數量的字),但它可能與您的用例無關。 – 2014-12-06 13:39:56

+1

'str = ...'是一個壞主意!不要將預先存在的標識符用作名稱。在定義'nmbr_word'時,你也不需要在'len'周圍的圓括號。 – ThinkChaos 2014-12-06 13:41:18

+0

好吧,我會修改我的問題 – Guillaume 2014-12-06 13:58:06

回答

1

如何使用textwrap module

>>> import textwrap 
>>> s = "Au Fil Des Antilles De La Martinique a Saint Barthelemy" 
>>> textwrap.wrap(s, 30) 
['Au Fil Des Antilles De La', 'Martinique a Saint Barthelemy'] 
>>> "\n".join(textwrap.wrap(s, 30)) 
'Au Fil Des Antilles De La\nMartinique a Saint Barthelemy' 
+0

拆分應該由字數進行,而不是寬度。 – 2014-12-06 13:44:52

+0

謝謝,30是什麼意思? – Guillaume 2014-12-06 13:47:29

+0

這是每行不得超過的字符數。正如@RobbieLiu指出的那樣,這並不完全符合你的要求,但也許它仍然有用(甚至可能比分裂每個單詞數更多) – 2014-12-06 13:49:15

0

如何:

'\n'.join([' '.join(nmbr_word[i:i+6]) for i in xrange(0, len(nmbr_word), 6)])