如何在特定字符数后分割Python中的字符串?

问题描述:

我很抱歉,如果这是一个重复,但我似乎无法找到任何东西,涉及分裂一个字符串计数。举例来说,假设我有以下字符串:如何在特定字符数后分割Python中的字符串?

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ullamcorper, eros 
sed porta dapibus, nunc nibh iaculis tortor, in rhoncus quam orci sed ante. Sed 
ac dictum nibh. 

现在,我可以根据特定的字符分割字符串,但我怎么能第n 字符后这个字符串分割,不管是什么,是什么?这样的事情,只有一个工作语法是我在想什么:

max_char = n #where n is the number of characters to split after 
MyText = 'User input string. This is usually at least a paragraph long.' 
char_count = len(MyText) 
if char_count > max_char: 
#split string at max_char, create variables: MyText1 and MyText2 

任何帮助,将不胜感激。谢谢!

更新

我想张贴此更新,因为我的问题只有走近我的问题的一半。感谢Martijin的回答,我轻松地将上面的字符串切片。但是,由于我编辑的字符串是用户提交的,所以我遇到了将单词分成两半的问题。为了解决这个问题,我使用了rsplitrstrip的组合来正确地分段。以防万一有人在那里正面临着同样的问题我在这里是我用来做它的代码工作:

line1 = note[:36] 
line2 = note[36:] 

if not line1.endswith(' ', 1): 
line2_2 = line1.rsplit(' ')[-1] 
line1_1 = line1.rstrip(line2_2) 
line2_2 = line2_2 + line2 
line1 = '' 
line2 = '' 

现在,我敢肯定有这样做的更有效的/优雅的方式,但这仍然有效,希望有人能从中受益。谢谢!

您正在寻找slicing

MyText1, MyText2 = MyText[:max_char], MyText[max_char:] 

Python的字符串是序列,选择第一个max_char字符,简单地用一个片选择那些和下半年选择一切开始max_char直到结束。

这也是covered in the Python tutorial

+0

完美,谢谢Martijn! – 2013-02-13 19:18:56

只是为了改进您的最终解决方案:您可以使用string.find(' ', n)来查找字符n之后的第一个空格的索引。如果你想在该空间之后进行拆分(以便string1以空格结束,而不是以1开始的字符串2),只需添加一个即可:

>>> print string 
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ullamcorper, eros sed porta dapibus, nunc nibh iaculis tortor, in rhoncus quam orci sed ante. Sed 
>>> space_location = string.find(' ', 36)+1 
>>> print string[:space_location] 
Lorem ipsum dolor sit amet, consectetur 
>>> print string[space_location:] 
adipiscing elit. Sed ullamcorper, eros sed porta dapibus, nunc nibh iaculis tortor, in rhoncus quam orci sed ante. Sed 
+0

太棒了! +1用于升级我的解决方案。谢谢! – 2013-02-13 23:59:44