Justifying text.
John Roth
johnroth at ameritech.net
Sun Sep 30 08:39:20 EDT 2001
More information about the Python-list mailing list
Sun Sep 30 08:39:20 EDT 2001
- Previous message (by thread): Justifying text.
- Next message (by thread): [OT] Re: Justifying text.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
"A.A" <andtherewaswater at yahoo.com> wrote in message news:3BB6D7EE.D87FAF00 at yahoo.com... > I've really messed up: IN short, I just wanted to write a program in > python that justified plain text in a .txt to a specified margin. Justification is not difficult. There are a number of approaches, depending on what you want to do. If the text is already properly split into lines, see the .ljust, .rjust and .center string methods. If it isn't, then you need to break it into lines. There may be easier methods, but I use a simple loop, scanning backwards from the maximum line length until I hit white space. The following may do what you want: <begin program> # translate MS Word text format with no line breaks to 80 character # line output. Each paragraph is presumed to be a single input line. import sys def ltDriver(fnIn, fnOut): inFile = open(fnIn, "r") outFile = open(fnOut, "w") for line in inFile.readlines(): i = 0 if line[-1] == '\n': line = line[:-1] + " " while i < len(line): j = min(i + 80, len(line) - 1) while j > i and not line[j].isspace(): j -= 1 while j > i and line[j].isspace(): j -= 1 outFile.write(line[i:j+1] + "\n") i = j + 1 while i < len(line) and line[i].isspace(): i += 1 if __name__ == "__main__": ltDriver("B1I14Attack.txt", "B1I14Attack2.txt") </end program> John Roth
- Previous message (by thread): Justifying text.
- Next message (by thread): [OT] Re: Justifying text.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list