在扩展名之前添加后缀到完整路径名称

Tom*_*koo -4 python path python-3.x pathlib

我将一些代码从 移至os.pathpathlib.Path发现总的来说它要好得多。

在一项特定任务中,我发现实际上os.path使用起来可能更舒服。我想通过在其名称中添加后缀并保持相同的根和扩展名来从给定路径创建一条新路径。例如,来自:

/a/b/c/file.txt
Run Code Online (Sandbox Code Playgroud)

我想得到:

/a/b/c/file_test.txt
Run Code Online (Sandbox Code Playgroud)

使用os.path,可以通过以下方式轻松完成splitext

/a/b/c/file.txt
Run Code Online (Sandbox Code Playgroud)

但是,浏览了 的pathlib文档,我发现with_namewith_suffix得到了类似的内容:

/a/b/c/file_test.txt
Run Code Online (Sandbox Code Playgroud)

我相信这比版本差得多os.path

有没有更好、更干净的方法来实现这一点pathlib

Thi*_*lle 9

混合使用一些方法,您还可以执行以下操作:

from pathlib import Path

path = Path("/a/b/c/file.txt")
path.with_name(path.stem + '_test' + path.suffix)
# PosixPath('/a/b/c/file_test.txt')
Run Code Online (Sandbox Code Playgroud)


Tom*_*koo 6

在找到有关向路径添加另一个扩展的答案后,我发现一种更简洁的方法可以是:

>>> path = Path("/a/b/c/file.txt")
>>> path.parent / (path.stem + "_test" + path.suffix)
PosixPath('/a/b/c/file_test.txt')
Run Code Online (Sandbox Code Playgroud)