[Python-ideas] PEP 428 - object-oriented filesystem paths
Stephen J. Turnbull
stephen at xemacs.org
Sat Oct 6 10:04:44 CEST 2012
Ethan Furman writes:
> Eric Snow wrote:
> > On Fri, Oct 5, 2012 at 5:48 PM, Antoine Pitrou <solipsis at pitrou.net> wrote:
> >> On Fri, 05 Oct 2012 14:38:57 -0700
> >> Ethan Furman <ethan at stoneleaf.us> wrote:
> >>> Say I have a .dbf table as PureNTPath('c:\orders\12345\abc67890.dbf'),
> >>> and I export it to .csv in the same folder; how would I transform the
> >>> above PureNTPath's ext from 'dbf' to 'csv'?
> >> Something like:
> >>
> >>>>> p = PureNTPath('c:/orders/12345/abc67890.dbf')
> >>>>> p.parent()[p.name.split('.')[0] + '.csv']
> >> PureNTPath('c:\\orders\\12345\\abc67890.csv')
> >>
> >> Any suggestion to ease this use case a bit?
> >
> > Each namedtuple has a _replace() method that's is used to generate a
> > new instance with one or more attributes changed. We could do
> > something similar here:
> >
> >>>> p = PureNTPath('c:/orders/12345/abc67890.dbf')
> >>>> p.replace(ext='.csv')
> > PureNTPath('c:\\orders\\12345\\abc67890.csv')
>
> +1
How about a more general subst() method? Indeed, it would need
keyword arguments for named components like ext, but I often do things
like "mv ~/Maildir/{tmp,new}/42" in the shell. I think it would be
useful to be able to replace any component of a path.
More information about the Python-ideas
mailing list