help me to find the error

Dave Angel davea at ieee.org
Fri Jul 10 11:57:21 EDT 2009


jhinak sen wrote:
> hey,
> thanx a lot :)
> i got ur points .. and it really helps..
>
> and please also tell me ...
> where i can get more basic and detail knowledge of python.. as i am
> beginners in this , i need more examples  of python programmes so that i can
> understand better.
> also if you know of any gud pdf file or book please let me know
>
> thnx a lot
> jhinak
>
> On Fri, Jul 10, 2009 at 7:25 PM, Dave Angel <davea at ieee.org> wrote:
>
>   
>> jhinak sen wrote:
>>
>>     
>>> hi,
>>> i am a beginner in python language,
>>>
>>> i am trying with this programme :
>>> to find the addition and mean from a data set in a file and writing the
>>> mean
>>> and sum in some other file :
>>> ""
>>> *#! /usr/bin/env python
>>>
>>> import re
>>> import cPickle as p
>>> import math
>>> from numpy import *
>>>
>>> f0= open("temp9","r+").readlines()
>>> f2= open("out1","r+")
>>> add_1=[ ];
>>> for i in range(0, len(f0)):
>>>        f1=f0[i].split()
>>>        add= float(f1[1])+float(f1[2])
>>>    mean= float(add)/2
>>>        print (f1[1]).ljust(6) ,(f1[2]).ljust(6),repr(add).ljust(7),
>>> repr(mean).ljust(7)
>>>        add_1.append(add)
>>>    add_1.append(mean)
>>>        f2.write("%s" % repr(add).ljust(7)),f2.write("%s" %
>>> repr(mean).ljust(7))
>>> print "printing from file"
>>> for i in range(0, len(add_1),2):
>>>        print add_1[i],"        ", add_1[i+1]
>>>
>>> f0.close()
>>> f2.close()*
>>>
>>>
>>> ""
>>>
>>> and this programme is givving me this error :
>>>
>>> ""    *Traceback (most recent call last):
>>>  File "./temporary1.py", line 24, in <module>
>>>    f0.close()
>>> AttributeError: 'list' object has no attribute 'close'*
>>> ""
>>>
>>> please help to to find the error.
>>> or suggest some simpler or better way
>>>
>>> note:
>>> 1)file "temp9" is already exist
>>> 2)this programme is giving me all my outputs, but at the end of the out
>>> ..its giving me that error.
>>>
>>>
>>>
>>>       
>> Others have pointed out the specific problem that gives you this error.
>>  But I'd like to point out a few other things to consider:
>>
>> 1) Don't mix tabs and spaces.  Best practice is to bind tab to (4) spaces
>> in your editor, and never have a tab in a Python source file.
>> 2) Think about your variable names.  As it stands, f0 is a list of lines,
>> f1 is a list of "word" within a line, and f2 is a file.  No wonder you
>> accidentally tried to close the list.  I'd suggest things like:
>>     infile = open(....)
>>     lines = infile.readlines()
>>     outfile = open(....)
>>
>>     for line in lines:
>>            words = line.split(" ")     or  even   val1, val2 =
>> lines.split(" ")
>>
>>  Then of course the last two lines become
>>  infile.close()
>>  outfile.close()
>>
>> 3) Learn to use the for statement directly on a list, rather than using
>> len() on the list to make an index, then using the index to find the value
>> 4) On the open() calls, get your modes right.  Looks like you really want
>>  infile = open(infilename, "r")
>>  outfile = open(outfilename, "w")
>> 5) Consider using tuples in your add_1 list, rather than separate elements.
>>  That way, each element of the list would contain both sum and mean.
>>              add_1.append((add, mean))
>>
>>      and the final print would become
>>
>>   for item in add_1:
>>       print item[0],"        ", item[1]
>>
>> 6) Put anything over three lines into a function, instead of doing it at
>> module scope.  That way, you'll be clearer about what things are local to
>> this code, and what might be useful to other code in the same module.
>> In this case,  infilename, and outfilename might be arguments to that
>> function.
>>
>> There are lots of other refinements, but these are all within your reach,
>> and would make the program much clearer.
>>
>>
>>     
>
>   
Please don' t top-post.  Putting your reply out of order makes it harder 
for others to see the sequences of things.  Some people top-post 
everything, but on this mailing list (and maybe most), the standard is 
to add to bottom, or inline where appropriate.

Anyway,
http://docs.python.org/tutorial/
http://diveintopython.org/
http://www.openbookproject.net/thinkCSpy/

are all good, depending on your experience with other languages, and 
with your computer's OS.

You could also check out
http://code.activestate.com/recipes/     or    
http://code.activestate.com/recipes/langs/python/  for Python specifically

which has a large set of relatively small modules of code.
For a examples that might stretch your thought process:
    http://code.activestate.com/recipes/576755/
    http://code.activestate.com/recipes/576647/





More information about the Python-list mailing list