jimgardener wrote: > I am trying to code a function that takes a directory name and a name > string and try to return a list of fully qualified names of all files > in the directory having an exact match of name. > > example, > I have these files in the directory, > 'googlegroup_python__111.txt', > 'googlegroup_python__112.txt', > 'googlegroup_python_django__111.txt', > 'googlegroup_python_django__112.txt', > 'googlegroup_python_grok__111.txt', > > When I call > get_filenames('mydir', 'googlegroup_python' ) > > I expect to get a list like > ['/mydir/googlegroup_python__111.txt', '/mydir/ > googlegroup_python__112.txt'] > > but not the other three. > > I was careless when I coded the method as > > def get_filenames(dirname,filenamestr): > match_filenames=[dirname+os.sep+x for x inos.listdir(dirname) if > x.startswith(filenamestr)] > return match_filenames > > because this would return all 5 of the above filenames.I think reg > expression maybe the way to do this..but not very sure as to how I can > do it.. > > Any help or suggestions greatly appreciated > thanks > jim
Try the glob module first: >>> import os, glob >>> print "\n".join(os.listdir("mydir")) googlegroup_python_django__111.txt googlegroup_python__112.txt googlegroup_python_grok__111.txt googlegroup_python_django__112.txt googlegroup_python__111.txt >>> print "\n".join(glob.glob("mydir/googlegroup_python__???.txt")) mydir/googlegroup_python__112.txt mydir/googlegroup_python__111.txt If glob() isn't selective enough you may have to resort to regular expressions. Peter -- http://mail.python.org/mailman/listinfo/python-list