每 n 个字符拆分字符串但不拆分单词

Split string every n characters but without splitting a word

假设我在 python 中有这个:

orig_string = 'I am a string in python'

如果我们假设我想每 10 个字符拆分这个字符串但不拆分单词,那么我想要这个:

strings = ['I am a ', 'string in ', 'python']

或者这个(分割处没有空格):

strings = ['I am a', 'string in', 'python']

因此,拆分应该恰好在单词之前进行,否则在每种情况下都会被拆分。

否则,我会有这个:

false_strings = ['I am a str', 'ing in pyt', 'hon']

只是提一下,在我的例子中,我想每 15k 个字符执行一次,但我在上面给出了每 10 个字符的示例,以便可以在此处以简洁的方式编写它。

最有效的方法是什么?

您可以使用 built-in textwrap.wrap 函数 (doc):

orig_string = 'I am a string in python'

from textwrap import wrap

print(wrap(orig_string, 10))

打印:

['I am a', 'string in', 'python']