Is there a function that can test if a path is in a directory or one of its sub-directory (recursively)?

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Fri Nov 6 01:49:15 EST 2009


En Fri, 06 Nov 2009 00:53:14 -0300, Chris Rebert <clp2 at rebertia.com>  
escribió:
> On Thu, Nov 5, 2009 at 7:41 PM, Peng Yu <pengyu.ut at gmail.com> wrote:

>> I looked though the os.path manual. I don't find a function that can
>> test if a path is in a directory or its sub-directory (recursively).
>>
>> For example, /a/b/c/d is in /a its sub-directory (recursively). Could
>> somebody let me know if such function is available somewhere?
>
> Couldn't you just canonicalize the paths using os.path.abspath() and
> friends and then do subdirectory.startswith(parent_directory) [as
> strings]?

Beware of directories starting with the same letters.
I'd canonicalize, split the strings on os.sep, and compare the resulting  
lists up to the shortest one.

-- 
Gabriel Genellina




More information about the Python-list mailing list