[Python-ideas] PEP 428 - object-oriented filesystem paths

Ryan D Hiebert ryan at ryanhiebert.com
Tue Oct 9 18:59:06 CEST 2012


On Oct 9, 2012, at 1:18 AM, Joachim König <him at online.de> wrote:
> As has already been stated by others, paths are immutable so using them
> like lists is leading to confusion (and list's append() only wants one arg, so
> extend() might be better in that case).
> 
> But paths could then be interpreted as tuples of "directory entries" instead.
> 
> So adding a path to a path would "join" them:
> 
> pathA + pathB
> 
> and in order to not always need a path object for pathB one could also write
> the right argument of __add__ as a tuple of strings:
> 
> pathA + ("somedir", "file.txt")

I like it. As you pointed out, my comparison with list is inappropriate because of path's immutability. So .append() and .extend() probably don't make sense.

> One could also use "+" for adding to the last segment if it isn't a path object or a tuple:
> 
> pathA + ".tar.gz"


This might be a reasonable way to appease both those who are viewing path as a special tuple and those who are viewing it as a special string. It breaks the parallel with tuple a bit, but it's clear that there are important properties of both strings and tuples that would be nice to preserve.

Ryan


More information about the Python-ideas mailing list