将非目录组件附加到 Python 路径的最简单方法?

Easiest way to append non-directory component to Python Path?

几个 SO 问题询问如何将 目录 附加到 pathlib.Path 对象。 不是这个问题。

我想使用 Path 对象作为单个目录中一系列文件的前缀,如下所示:

2022-01-candidates.csv
2022-01-resumes.zip
2022-02-candidates.csv
2022-02-resumes.zip

理想情况下,我会为 2022-012022-02 组件构建 Path 对象,然后将 -candidates.csv-resumes.zip 附加到每个组件。

不幸的是,Path 似乎只理解附加 子目录 ,而不是对现有路径名的扩展。

我看到的唯一解决方法是 p.parent / (p.name + "-candidates.csv")。虽然这还不错,但它很笨拙,这种模式对我来说很常见。我想知道我是否缺少更精简的方法。 (例如,为什么没有 + 连接运算符?)

Path.with_suffix() 要求后缀以点开头,这样行不通。

如您所述,使用除法运算符总是会创建一个 sub-directory,而 with_suffix 仅用于扩展。您可以使用 with_path 来编辑文件名:

import pathlib
path = pathlib.Path("2022-01")
path.with_name(f"{path.name}-candidates.csv")