2014-12-06 5 views
0

단어 수가 너무 많으면 긴 문자열을 자르는 줄을 찾고 있습니다. (str.join라고 생각합니다). 나는 시작 부분을 가지고 있지만 나는 \npython - 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) 모듈을보십시오. 그것은 특정 양의 문자가 아닌 특정 양의 단어에 맞게 텍스트를 줄 수 있지만 어쨌든 사용 사례와 관련이 있습니다. –

+1

'str = ...'은 나쁜 생각입니다! 기존 식별자를 이름으로 사용하지 마십시오. 또한'nmbr_word'를 정의 할 때'len' 주위에 괄호가 필요하지 않습니다. – ThinkChaos

+0

자, 질문을 수정하겠습니다. – Guillaume

답변

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

스플릿은 단어가 아닌 단어 수로 이루어져야합니다. –

+0

감사합니다. '30 '은 무엇을 의미합니까? – Guillaume

+0

한 줄당 초과 할 수없는 문자 수입니다. @ RobbieLiu가 지적했듯이 그것은 당신이 요구 한 것이 아니지만 어쩌면 여전히 유용 할 것입니다. (어쩌면 단어의 수만큼 분할하는 것보다 ...) –

0

를 삽입 whow 모르는 방법에 대해 :

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