On 07/10/11 09:08, lina wrote:

TOKENS="BE"
LINESTOSKIP=0
INFILEEXT=".xpm"
OUTFILEEXT=".txt"

def dofiles(topdirectory):
     for filename in os.listdir(topdirectory):
         processfile(filename)

def processfile(infilename):
     results={}
     base, ext =os.path.splitext(infilename)
     if ext == INFILEEXT:

         text = fetchonefiledata(infilename)
         numcolumns=len(text[0])
         for ch in TOKENS:
             results[ch] = [0]*numcolumns
         for line in text:
             line = line.strip()
         for col, ch in enumerate(line):
             if ch in TOKENS:
                 results[ch][col]+=1

It would be easier to read(and debug) if you put
that chunk into a function. Using the naming style below
it could be called processOneFileData() for example...

Make it return the results dictionary.

     for k,v in results.items():
         print(results)

This prints the same thing (results) for as many items
are in results. I'm pretty sure you don't want that.
Just printing results once should be sufficient.

     summary=[]
     for a,b in zip(results['E'],results['B']):
         summary.append(a+b)

I don't know why this gives a key error on 'E' (which basically means that there is no key 'E') since the code above should guarantee that it exists. Odd. I'm also not sure why the error occurs after it prints summary. Are you sure the output is in the sequence you showed in your message?

     print(summary)
     writeonefiledata(base+OUTFILEEXT,summary)

def fetchonefiledata(inname):
     infile = open(inname)
     text = infile.readlines()
     return text[LINESTOSKIP:]

def writeonefiledata(outname,summary):
     outfile = open(outname,"w")
     for elem in summary:
         outfile.write(str(summary))


if __name__=="__main__":
     dofiles(".")


HTH,

--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to