La adición de un sufijo al nombre de una ruta completa, antes de la extensión

Tomerikoo:

Estoy moviendo algunos de mi código de os.patha pathlib.Pathy encontró que, en general, es mucho mejor.

En una tarea específica descubrí que en realidad os.pathpodría ser más cómodo de usar. Quiero crear un nuevo camino de un ser determinado, mediante la adición de un sufijo a su nombre y manteniendo la misma raíz y la extensión. Por ejemplo, a partir de:

/a/b/c/file.txt

Quiero tener:

/a/b/c/file_test.txt

Utilizando os.path, esto se puede hacer fácilmente con splitext:

>>> import os
>>> path = "/a/b/c/file.txt"
>>> base, ext = os.path.splitext(path)
>>> base + "_test" + ext
'/a/b/c/file_test.txt'

Sin embargo, repasando los pathlibdocumentos 's , he encontrado with_namey with_suffixy tengo algo así como:

>>> 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')

Que creo que es mucho peor que la os.pathversión.

¿Hay una manera mejor, más limpio de lograr esto con pathlib?

Thierry Lathuille:

Mezclar algunos de sus enfoques, también se puede hacer:

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')

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=406293&siteId=1
Recomendado
Clasificación