Я перемещаю часть своего кода с os.path
на pathlib.Path
и обнаружил, что в целом он намного лучше.
По конкретному * Задача 1050 * Я обнаружил, что на самом деле os.path
может быть более удобным в использовании. Я хочу создать новый путь из заданного, добавив суффикс к его имени и сохранив то же root и расширение. Например, из:
/a/b/c/file.txt
Я хочу получить:
/a/b/c/file_test.txt
Используя os.path
, это можно легко сделать с помощью splitext
:
>>> import os
>>> path = "/a/b/c/file.txt"
>>> base, ext = os.path.splitext(path)
>>> base + "_test" + ext
'/a/b/c/file_test.txt'
Но, просматривая документы pathlib
, я нашел with_name
и 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
?