I am trying to write a function that takes a
directory's name, finds any subdirectories, and then
prints out the size of the files in all found
directories.

import os, os.path

def describeDirectory(directory):
    dirList = [directory]
    for d in os.listdir(directory):
        if os.path.isdir(d):
            dirList.append(d)
    for d in dirList:
        print d, ':'
        for f in os.listdir(d):
            name = os.path.join(d, f)
            print '\t', name, 'SIZE: ',
os.path.getsize(name)

describeDirectory('.')

Here is the output:

>>> 
. :
        .\changePeppers.py SIZE:  915
        .\describeDirectory.py SIZE:  549
        .\describeDirectory.pyc SIZE:  514
        .\describeDirectory01.py SIZE:  388
        .\error_log SIZE:  778
        .\makezeros.py SIZE:  147
        .\makezeros.pyc SIZE:  481
        .\modPrompt.py SIZE:  342
        .\modPrompt.pyc SIZE:  698
        .\output SIZE:  387
        .\pepper.txt SIZE:  601
        .\testFiles SIZE:  0
        .\textWrapper.py SIZE:  619
        .\textWrapper.pyc SIZE:  1092
        .\timings.py SIZE:  567
        .\timings.pyc SIZE:  733
testFiles :
        testFiles\renameFiles.py SIZE:  351
        testFiles\some_date SIZE:  29
        testFiles\stupid_text.txt SIZE:  12
        testFiles\testDir SIZE:  0

As you see, the problem is that there is another
directory under testFiles called testDir, but the
function doesn't check the directory for files.  The
function needs to find every directory (including
subdirectories within directories).  Any hints?  

I'm starting to wonder if I should abandon trying to
do this with one function.  For example, I could
create one function that finds every directory.  This
information would then be passed to another function
that returns the files' sizes.
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to