finding an exact match of filenames

J

jimgardener

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
 
P

Peter Otten

jimgardener said:
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:
googlegroup_python_django__111.txt
googlegroup_python__112.txt
googlegroup_python_grok__111.txt
googlegroup_python_django__112.txt
googlegroup_python__111.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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,743
Messages
2,569,478
Members
44,899
Latest member
RodneyMcAu

Latest Threads

Top