Writing to files

Daley, MarkX markx.daley at intel.com
Mon Mar 20 17:42:48 EST 2000


Daley, MarkX wrote:

> Here is a piece of code I wrote to write the items in a list sequentially
to
> a file.
> 
> Definitions:
> 
> a=some list ([1,2,3,whatever])
> f=open('filename','a')
> 
> 	for x in a:
> 		f.write(a[x])
> 
> When I run it, I get this:
> 
> 	Traceback (innermost last):
>  		 File "<pyshell#2>", line 1, in ?
>    		 collect.collect()
>   	File "C:\PROGRA~1\Python\collect.py", line 30, in collect
>     		f.write(a[x])
> 	TypeError: sequence index must be integer

Of course. The first thing you want is:
 	for x in a:
 		f.write(x)

at least until you discover that write wants a string (which may 
be binary).
 
> Any ideas on what is causing this?  The data in the list is columnar
> information pulled from a database, but this shouldn't be the cause of the
> problem because I can substitute a print statement in for the f.write
> statement and it works just fine.  Any suggestions are appreciated.

No, "print a[x]" would have the same problem. "print x" 
wouldn't, but it automatically converts x to a string if it's not 
one already.

- Gordon


I didn't realize print converts to a string.  I guess the question I should
ask then, is how do I write a list to a file item by item?

-  Mark





More information about the Python-list mailing list