[Python-Dev] (Idea) subclassable string: path object?

Guido van Rossum guido@zope.com
Fri, 03 Aug 2001 12:50:23 -0400

> Every once in a while I wished for an path object to manipulate file
> system paths. Things like
>    os.path.join(a, b, c, os.path.splitext(os.path.basename(p))[0] + ".ext")
> quickly get frustrating (so of course I never write them like that ;-).
> I thought of implementing a path object several times, but always
> stopped when I realized (for the Nth time ;-) that you'd then have
> to do something like
>    file = open(p.tostring())
> whenever you want to *use* your pat. That doesn't help at all.

Two better solutions:

(1) If the Path class defines a __str__() method, you can write open(p).

(2) You could add an open method to the Path class, and write p.open().

> But: since strings are now subclassable (there are, aren't they?)
> this should no longer be a problem!
> Would it be a worthwile project to design and implement a path
> object for the standard library?

I'm lukewarm on adding this to the std library.  Java has such a thing
and I never warmed up to it.

--Guido van Rossum (home page: http://www.python.org/~guido/)