[Python-ideas] pathlib suggestions

Petr Viktorin encukou at gmail.com
Wed Jan 25 10:18:49 EST 2017


On 01/25/2017 04:04 PM, Todd wrote:
> On Wed, Jan 25, 2017 at 12:25 AM, Stephen J. Turnbull
> <turnbull.stephen.fw at u.tsukuba.ac.jp
> <mailto:turnbull.stephen.fw at u.tsukuba.ac.jp>> wrote:
>
>     I'm just going to let fly with the +1s and -1s, don't take them too
>     seriously, they're basically impressionistic (I'm not a huge user of
>     pathlib yet).
>
>     Todd writes:
>
>      > So although the names are tentative, perhaps there could be a
>     "fullsuffix"
>      > property to return the extensions as a single string,
>
>     -0      '.'.join(p.suffixes) vs. p.fullsuffix?  TOOWTDI says no.  I
>             also don't really see the use case.
>
>
> The whole point of pathlib is to provide convenience functions for
> common path-related operations.  It is full of methods and properties
> that could be implemented other ways.
>
> Dealing with multi-part extensions, at least for me, is extremely
> common.  A ".tar.gz" file is not the same as a ".tar.bz2" or a
> ".svg.gz".  When I want to find a ".tar.gz" file, having to deal with
> the ".tar" and ".gz" parts separately is nothing but a nuisance.  If I
> want to find and extract ".rar" files, I don't want ".part1.rar" files,
> ".part2.rar" files, and so on.  So for me dealing with the extension as
> a single unit, rather than individual parts, is the most common  approach.

But what if the .tar.gz file is called "spam-4.2.5-final.tar.gz"?
Existing tools like glob and endswith() can deal with the ".tar.gz" 
extension reliably, but "fullsuffix" would, arguably, not give the 
answers you want.

Perhaps more specialized tools would be useful, though, for example:
     repacked_path = original_path.replace_suffix(".tar.gz", ".zip")



More information about the Python-ideas mailing list