ecu_jon wrote: > yes i agree breaking stuff into smaller chunks is a good way to do it. > even were i to do something like > > def safe_copy() > f1=file(files ,'rb') > f2 = file(os.path.join(currentdir,fname,files)) > truth = md5.new(f1.read()).digest() == > md5.new(f2.read()).digest() > if truth == 0: > print "file copy error" > > that would probably work for the single file copy functions. but would > still breakdown during the for ...os.walk(), again because "fname" is > a list there, and the crypto functions work 1 file at a time. even > changing crypto functions wouldn't change that.
That's what function parameters are for: def safe_copy(fname): .... for x in fname: safe_copy(x) That way fname is a filename inside safe_copy() and a list of filenames on the global module level. "fname" for a list and "files" for a single file are still badly chosen names because they confuse the reader instead of clarifying what's going on. I strongly recommend that you work through a python tutorial for non- programmers before you continue with your efforts. -- http://mail.python.org/mailman/listinfo/python-list