在扩展名之前为完整路径名添加后缀
Adding a suffix to a full path's name, before the extension
我正在从 os.path
to pathlib.Path
中移出我的一些代码,发现总体上它要好得多。
在特定任务中,我发现实际上 os.path
使用起来可能更舒服。我想从给定的路径创建一个新路径,方法是在其名称中添加一个后缀并保持相同的根和扩展名。例如,来自:
/a/b/c/file.txt
我想得到:
/a/b/c/file_test.txt
轻松完成
>>> import os
>>> path = "/a/b/c/file.txt"
>>> base, ext = os.path.splitext(path)
>>> base + "_test" + ext
'/a/b/c/file_test.txt'
但是,检查 pathlib
's docs, I found with_name
and with_suffix
得到类似的东西:
>>> from pathlib import Path
>>> path = Path("/a/b/c/file.txt")
>>> path.with_suffix('').with_name(path.stem + "_test").with_suffix(path.suffix)
PosixPath('/a/b/c/file_test.txt')
我认为这比 os.path
版本差得多。
pathlib
是否有更好、更简洁的方法来实现此目的?
在找到 this answer 关于向路径添加另一个 扩展名 之后,我发现更简洁的方法是:
>>> path = Path("/a/b/c/file.txt")
>>> path.parent / (path.stem + "_test" + path.suffix)
PosixPath('/a/b/c/file_test.txt')
混合使用您的一些方法,您还可以:
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')
我正在从 os.path
to pathlib.Path
中移出我的一些代码,发现总体上它要好得多。
在特定任务中,我发现实际上 os.path
使用起来可能更舒服。我想从给定的路径创建一个新路径,方法是在其名称中添加一个后缀并保持相同的根和扩展名。例如,来自:
/a/b/c/file.txt
我想得到:
/a/b/c/file_test.txt
轻松完成
>>> import os
>>> path = "/a/b/c/file.txt"
>>> base, ext = os.path.splitext(path)
>>> base + "_test" + ext
'/a/b/c/file_test.txt'
但是,检查 pathlib
's docs, I found with_name
and with_suffix
得到类似的东西:
>>> from pathlib import Path
>>> path = Path("/a/b/c/file.txt")
>>> path.with_suffix('').with_name(path.stem + "_test").with_suffix(path.suffix)
PosixPath('/a/b/c/file_test.txt')
我认为这比 os.path
版本差得多。
pathlib
是否有更好、更简洁的方法来实现此目的?
在找到 this answer 关于向路径添加另一个 扩展名 之后,我发现更简洁的方法是:
>>> path = Path("/a/b/c/file.txt")
>>> path.parent / (path.stem + "_test" + path.suffix)
PosixPath('/a/b/c/file_test.txt')
混合使用您的一些方法,您还可以:
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')