Matt Dempsey wrote: > I'm using xmltramp to process some U.S. House of Rep. vote data. I can > get it to print what I want but when I try to write it to a text file I > had all sorts of problems. Can someone tell me what I'm doing wrong? > > for each in range(votes): > st= str(vd[each].legislator('state')) > vt= str(vd[each].vote) > nm= (vd[each].legislator('unaccented-name')) > pt= str(vd[each].legislator('party')) > f= file('housevote.txt', 'w') > if st == 'AZ': > f.write(nm) > else: > pass > f.close()
There are a couple of problems here. First, you are opening the file inside the loop. Each time you open the file it starts over, wiping out what was there before! So move the line f=file(...) to before the for statement. Second, you aren't putting any newlines into the file. f.write() will write just what you ask for - not like print which does some simple formatting for you. So you might try f.write(nm) f.write('\n') Another alternative is to use print-to-file. You can say print >>f, nm This works just like print as far as spaces and newlines, but output will go to f instead of std out. > > Before trying to write it to a file, my loop looked like this: > for each in range(votes): > st= str(vd[each].legislator('state')) > if st == 'AZ': > print vd[each].legislator('unaccented-name'), > vd[each].legislator('party'), vd[each].vote Of course your file-writing code doesn't include all this data. Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor