Ritesh Raj Sarraf wrote:
> def copy_first_match(repository, filename, dest_dir): # aka
> walk_tree_copy()
> for path, file in files(repository):
> if file == filename:
> try:
> shutil.copy(os.path.join(path, file), dest_dir)
> sys.stdout.writ
Using the (non-standard yet) path module
(http://www.jorendorff.com/articles/python/path/), your code can be
simplified to:
from path import path, copy
def copy_first_match(repository, filename, dest_dir):
try:
first_match = path(repository).walkfiles(filename).next()
except StopI
Thanks to everyone. It is really the best place and the best people to
learn from.
Here's what I followed from the discussion:
def files(root):
for path, folders, files in os.walk(root):
for file in files:
yield path, file
def copy_first_match(repository, filename, dest_d
Ritesh Raj Sarraf wrote:
> Hi,
>
> Following is the code:
>
> def walk_tree_copy(sRepository, sFile, sSourceDir, bFound = None):
> try:
> if sRepository is not None:
You're being overly defensive here. Passing None as first arg is clearly
a programming error, so the sooner you detect
Ritesh Raj Sarraf wrote:
> Following is the code:
>
> def walk_tree_copy(sRepository, sFile, sSourceDir, bFound = None):
> try:
> if sRepository is not None:
> for name in os.listdir(sRepository):
> path = os.path.join(sRepository, name)
> i
Ritesh Raj Sarraf enlightened us with:
> bFound = True
> break
> return bFound
I see two weird things. First of all, the retun statement won't be
reached due to the break before it. Let's assume the break isn't
needed, and you