codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
import sys def justify(filename, width = 60): with open(filename, 'r') as file: words, cnt, size, dir = [], 0, 0, 0 for line in file: if line in ['\n','\r\n']: printline(width, words, cnt, size, dir, 'no') words, cnt, size, dir = [], 0, 0, dir print '' continue for word in line.split(): if cnt + size + len(word) > width: printline(width, words, cnt, size, dir, 'yes') words, cnt, size, dir = [], 0, 0, 1 - dir words.append(word); cnt += 1; size += len(word) printline(width, words, cnt, size, dir, 'no') def printline(width, words, cnt, size, dir, just): if just == 'no' or cnt == 1: for i in range(0, cnt): sys.stdout.write(words[i]) sys.stdout.write('\n' if i == cnt - 1 else ' ') elif cnt > 1: nblanks, holes, i = width - size, cnt - 1, 0 while holes > 0: n = int((nblanks - dir) / holes) + dir sys.stdout.write(words[i] + ' ' * n) nblanks -= n; holes -= 1; i += 1 print words[cnt - 1] else: print ''
Private
[
?
]
Run code
Submit