CHAT: Wordwrapping (was: File converter)
|From:||Boudewijn Rempt <bsarempt@...>|
|Date:||Friday, November 12, 1999, 8:17|
On Thu, 11 Nov 1999, FFlores wrote:
> While you're at it, do you know, or have you made a program that can
> word-wrap text (not on screen, but actually inserting line breaks)?
> It should be easy, but I've tried with VBA and the resulting program
> somehow mangles the output in one way or another every time!
It is quite easy: look at the following. There might be a better,
shorter and more pythonic way of doing it, but this works, is clear
and not too slow.
def wrap(text, length=67):
words=string.split(text) # chop text into words
line = ""
for word in words:
if len(line +" "+ word) >= length:
line=line + " " + word
return text2 + line
if len(sys.argv) == 1:
print "Usage: wrap.py text linelength"
elif len(sys.argv) == 2:
print wrap(open(sys.argv).read(), int(sys.argv))
Of course, there are lots of special cases this thimble of bytes
doesn't take into account, like paragraphs separated by \n\n, indenting
and so on - but if that's needed, I use _fmt_ ;-), if necessary from
my own programs.
Boudewijn Rempt | http://denden.conlang.org/~bsarempt