searching for files on Windows with Python

  • Thread starter =?iso-8859-4?Q?Shane?=
  • Start date
?

=?iso-8859-4?Q?Shane?=

I've been giving Google a good workout with no luck. I would like to be able to search a Windows filesystem for filenames, returning a list off absolute paths to the found files, something like:

def findFiles(filename, pathToSearch):
...
...
return foundFileNames

Is the os module where I should start?

Thanks,

Shane
 
D

Dennis Benzinger

Shane said:
I've been giving Google a good workout with no luck. I would like to be able to search a Windows filesystem for filenames, returning a list off absolute paths to the found files, something like:

def findFiles(filename, pathToSearch):
...
...
return foundFileNames

Is the os module where I should start?
[...]

Yes, especially the os.walk() function should help you.

Bye,
Dennis
 
K

Kent Johnson

Shane said:
I've been giving Google a good workout with no luck. I would like to
be able to search a Windows filesystem for filenames, returning a
list off absolute paths to the found files, something like:>
def findFiles(filename, pathToSearch):
...
...
return foundFileNames

Is the os module where I should start?

I always use Jason Orendorff's path module for this kind of stuff. It's way easier to use than os.whatever:

import path
files = path.path(pathToSearch).walkfiles(filename)

will give a list of path.path objects in pathToSearch whose names match filename (which is a glob so wildcards are recognized).

path.path is a subclass of str so the results can be used wherever you want the full path.

http://www.jorendorff.com/articles/python/path/index.html

Kent
 
P

Peter Hansen

Kent said:
I always use Jason Orendorff's path module for this kind of stuff. It's
way easier to use than os.whatever:

import path
files = path.path(pathToSearch).walkfiles(filename)

A minor enhancement (IMHO) (though I certainly agree with Kent's
recommendation here): since there is nothing else of interest in the
"path" module, it seems to be a fairly common idiom to do "from path
import path" and skip the doubled "path.path" bit.

-Peter
 
K

Kent Johnson

Peter said:
A minor enhancement (IMHO) (though I certainly agree with Kent's
recommendation here): since there is nothing else of interest in the
"path" module, it seems to be a fairly common idiom to do "from path
import path" and skip the doubled "path.path" bit.

Certainly it's your choice. I find most programs using path only reference path.path once, to create a starting path; other paths are created from that using files() or / etc. In this case it is less typing to say

import path
basePath = path.path(...)

instead of

from path import path
basePath = path(...)

from path import path only wins on number of chars if you reference path *three* times.

YMMV :)

Kent
 

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,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top