Writing to files
Gordon McMillan
gmcm at hypernet.com
Mon Mar 20 17:19:41 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
More information about the Python-list
mailing list