Ok so I'm supposed to be taking a input text file and justifying it. I've have gotten the text to do character justification bar the last line. I'm trying to figure out how to iterate over each space and insert a ' ' to get the last last up to the specified length.
If I try
in the spirit of simple style that python has taught me,
I get a non iterable error. Hence the while loop.
Also is there a way to get this bad-boy to justified by words and not chars?
I was using the 'Lorem ipsum...' paragraph as my default text.
Any help is appreciated.
If I try
Code:
for ' ' in new:
insert(new,' ',find(' '))
I get a non iterable error. Hence the while loop.
Also is there a way to get this bad-boy to justified by words and not chars?
I was using the 'Lorem ipsum...' paragraph as my default text.
Any help is appreciated.
Code:
inf = open('file_in.txt', 'r')
of = open('file_jus.txt', 'w')
inf.tell()
n = input('enter the number of characters per line: ')
def insert(original, new, pos):
#Inserts new inside original at pos.
return original[:pos] + new + original[pos:]
try:
print 'you entered {}\n'.format(int(n))
except:
print 'there was an error'
n = input('enter the number of characters per line: ')
else:
new = inf.readline(n)
def printn(l):
print>>of, l+'\n'
print 'printing to file',
print '(first char: {} || last char: {})'.format(l[0],l[-1])
while new != '': #multiple spaces present at EOF
if new[0] != ' ': #check space at beginning of line
if new[-1] != ' ': # check space at end of line
while (len(new) < n):
new = insert(new,' ',(new.find(' ')))
printn(new)
elif new[0] == ' ':
new = new.lstrip() #remove leading whitespace
new = insert(new,' ',(new.find(' ')))
while (len(new) < n):
new = insert(new,' ',(new.find(' ')))
printn(new)
elif new[-1] == ' ':
new = new.rstrip() #remove trailing whitespace
new = insert(new, ' ',(new.rfind(' ')))
while (len(new) < n):
new = insert(new,' ',(new.rfind(' ')))
printn(new)
new = inf.readline(n)
print '\nclosing files...'
inf.close()
print 'input closed'
of.close()
print 'output closed'
Comment