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