<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman, new york, times, serif;font-size:12pt"><DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">Sorry...I forgot a few more lines at the end of the code.&nbsp; Starts with "outfile2write..."</DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">I also added outfile2.sort()&nbsp;&nbsp;&nbsp; <BR><BR></DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif"><BR>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">Is this the correct traceback?&nbsp; Output okay except it will not sort alphabetically.</DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">****************</DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">Traceback (most recent call last):<BR>&nbsp; File "./mymods.py", line 83, in ?<BR>&nbsp;&nbsp;&nbsp; outfile2.sort()<BR>AttributeError: 'file' object has no attribute 'sort'<BR>*********************</DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">Here's the code.&nbsp; I did not write most of this, I'm only modifying it.&nbsp; In fact, I'm only responsible for the last two lines.</DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">&nbsp;</DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">&nbsp;</DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">************</DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">#reverse the dictionary of dictionaries, making new dictonary z:<BR>z={} #initialize empty dictionary<BR>skeys=h[keys[0]].keys() #get the "sub-keys"<BR>for i in skeys: #use sub-keys as new main-keys<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; z[i]={}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for j in keys: #use main-keys as new sub-keys<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; z[i][j]=h[j][i]<BR>#use the new dictionary to find number of missing values:<BR>print "\n fraction of sites with missing measurements:"<BR>nsites=len(h.keys())<BR>outfile2=open('missmeas.dat','w')<BR>for key in skeys:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fracmiss=1.*numberMissing(z[key].values())/nsites<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outstring="%s has %4.1f%% missing" % (key,100*fracmiss)</DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if fracmiss&gt;0.:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print outstring</DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif"><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outfile2.write(outstring+'\n') #notice explicit newline \n<BR>outfile2.sort()<BR>outfile2.close()<BR><BR>&nbsp;</DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">----- Original Message ----<BR>From: Alan Gauld &lt;alan.gauld@btinternet.com&gt;<BR>To: tutor@python.org<BR>Sent: Sunday, July 29, 2007 2:23:55 AM<BR>Subject: Re: [Tutor] attribute error<BR><BR>
<DIV>"Sara Johnson" &lt;sarliz73@yahoo.com&gt; wrote<BR><BR>&gt; However, is there an indentation error here?<BR><BR>Not that I can see. Is there an error? If so can you send the <BR>traceback?<BR>Its very hard to answer questions without any context.<BR><BR>&gt; I may just be too frustrated to see it.<BR>&gt;<BR>&gt; for key in skeys:<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fracmiss=1.*numberMissing(z[key].values())/nsites #note <BR>&gt; decimal multiplication, 1.*<BR><BR>This is a mess. Why have that long comment when all that's needed<BR>is to add the zero?! (and some spaces to make it legible...)<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fracmiss = 1.0 * numberMissing( z[key].values() ) / nsites<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outstring = "%s has %4.1f%% missing" % (key, 100 * fracmiss)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if fracmiss &gt;
 0.0:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print outstring<BR><BR>It looks OK apart from the poor style but I don't see anything that is<BR>an error. What are you seeing?<BR><BR>On the style front, if you want to force a result to a float it's more<BR>conventional to use the float() conversion function:<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fracmiss = float( numberMissing( z[key].values() ) / nsites )<BR><BR>And comparing to 0.0 doesn't really add anything except two <BR>characters,<BR>it could just as well be plain old 0.<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if fracmiss &gt; 0:<BR><BR>HTH,<BR><BR>Alan G.<BR><BR><BR><BR>_______________________________________________<BR>Tutor maillist&nbsp;&nbsp;-&nbsp;&nbsp;Tutor@python.org<BR><A href="http://mail.python.org/mailman/listinfo/tutor" target=_blank
 rel=nofollow>http://mail.python.org/mailman/listinfo/tutor</A></DIV></DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif"><BR></DIV></DIV><BR>
<HR SIZE=1>
<A href="http://us.rd.yahoo.com/evt=48250/*http://searchmarketing.yahoo.com/arp/sponsoredsearch_v9.php?o=US2226&amp;cmp=Yahoo&amp;ctv=AprNI&amp;s=Y&amp;s2=EM&amp;b=50" target=_blank rel=nofollow>Pinpoint customers </A>who are looking for what you sell. </DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif"><BR></DIV></div><br>
      <hr size=1>Building a website is a piece of cake. <br>Yahoo! Small Business gives you <a href="http://us.rd.yahoo.com/evt=48251/*http://smallbusiness.yahoo.com/webhosting/?p=PASSPORTPLUS">all the tools to get online.</a></body></html>