raw python string prefix

raw - string python



¿Cómo eliminar un prefijo de ruta en Python? (4)

Quería saber cuál es la función pitonica para esto:

Quiero eliminar todo antes del camino wa.

p = path.split(''/'') counter = 0 while True: if p[counter] == ''wa'': break counter += 1 path = ''/''+''/''.join(p[counter:])

Por ejemplo, quiero que ''/ book / html / wa / foo / bar /'' se convierta en ''/ wa / foo / bar /''


Para Python 3.4+, debe usar pathlib.PurePath.relative_to . De la documentación:

>>> p = PurePosixPath(''/etc/passwd'') >>> p.relative_to(''/'') PurePosixPath(''etc/passwd'') >>> p.relative_to(''/etc'') PurePosixPath(''passwd'') >>> p.relative_to(''/usr'') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "pathlib.py", line 694, in relative_to .format(str(self), str(formatted))) ValueError: ''/etc/passwd'' does not start with ''/usr''

Consulte también esta pregunta de para obtener más respuestas a su pregunta.



>>> path = ''/book/html/wa/foo/bar/'' >>> path[path.find(''/wa''):] ''/wa/foo/bar/''


import re path = ''/book/html/wa/foo/bar/'' m = re.match(r''.*(/wa/[a-z/]+)'',path) print m.group(1)