On Dec 5, 1:46 pm, Johny <[EMAIL PROTECTED]> wrote: > On Dec 5, 11:55 am, Chris <[EMAIL PROTECTED]> wrote: > > > > > On Dec 5, 10:55 am, Johny <[EMAIL PROTECTED]> wrote: > > > > I have a string of a variable length and I need to split the string > > > in strings of 6 characters . > > > But if the 6th character is not space then I must split the string > > > at possition before the 6th character. > > > > For example: > > > if the main string S is > > > > S='abcde fghc ijkl mnop' > > > > the result should be > > > abcde > > > fghc > > > ijkl > > > mnop > > > > Do you have any idea how it can be done? > > > Thank you > > > L. > > > That's not a great example of what you are looking for, because that > > result just looks like: > > '\n'.join(S.split()) > > > What result would you be looking for with say: > > S='this is just a random sequence of letters courtesy of monkeys on > > typewriter.' > > Chris, > Thank you for your reply. > So, let's suppose the example: > S='this is just a random sequence of letters courtesy of monkeys on > typewriter.' > and the length of split strings is now 10( instead of 6) > The example should be like this > this is > just a > random > sequence > of letters > courtesy > of monkeys > on > typewriter > > In other words, the string should be split at every 10th possition but > if the 10th character is space, then the string must be split at the > nearest space before the 10th possition. > > It could be better explained if the length of split strings will be > 20. > > S='this is just a random sequence of letters courtesy of monkeys on > > > typewriter.' > > Results: > > this is just a > random sequence of > letters courtesy of > monkeys on > typewriter.' > > Any idea how to do that? > Thank you > L.
To be honest I couldn't think of a neat way of doing it. What seems to look right, albeit fairly ugleh was this. import string def digest_chunks(input_string, max_length): tmp = [] while input_string: if len(input_string) >= max_length: if input_string[max_length] not in string.whitespace: y = max_length - input_string[max_length::-1].find(' ') if not y: if len(input_string) < max_length: tmp.append(input_string) input_string = '' else: y = input_string[::-1].find(' ', 1) tmp.append(input_string[:y]) input_string = input_string[y:] else: tmp.append(input_string[:y]) input_string = input_string[y:] else: tmp.append(input_string[:max_length]) input_string = input_string[max_length:] else: tmp.append(input_string) input_string = '' return '\n'.join(tmp) s = 'this is just a random sequence of letters courtesy of monkeys on typewriters.' print digest_chunks(s, 20) >python -u "test.py" this is just a random sequence of letters courtesy of monkeys on typewriters. >Exit code: 0 -- http://mail.python.org/mailman/listinfo/python-list