¿Cómo puedo extraer lo que sigue a la última barra en una URL en Python? Por ejemplo, estas URL deben devolver lo siguiente:
URL: http://www.test.com/TEST1
returns: TEST1
URL: http://www.test.com/page/TEST2
returns: TEST2
URL: http://www.test.com/page/page/12345
returns: 12345
Probé urlparse, pero eso me da el nombre de archivo de ruta completo, como page/page/12345.

...?foo=bary no desea esto; Sugeriría usarlourlparseen combinación con la sugerencia debasenamenaeg.Respuestas:
No necesita cosas sofisticadas, solo vea los métodos de cadena en la biblioteca estándar y puede dividir fácilmente su URL entre la parte 'nombre de archivo' y el resto:
Para que pueda obtener la pieza que le interesa simplemente con:
fuente
url.rsplit('/', 1)devuelve una lista yurl.rsplit('/', 1)[-1]es el bit después de la última barra.http://www.example.com/foo/?entry=the/bar#another/bar. Pero el análisis básico comorsplitestá bien si está absolutamente seguro de que nunca habrá barras inclinadas en su consulta o parámetros de fragmentos. Sin embargo, me estremezco al pensar en cuántas bases de código contienen realmente estersplitcódigo y su error asociado con el manejo de consultas. ¡Las personas que quieren SEGURIDAD Y FIABILIDAD ABSOLUTAS deberían usar en suurllib.parse()lugar! Luego puede usar elpathvalor que devuelve y dividir ESO para asegurarse de haber dividido SOLO la ruta.from urllib.parse import urlparse; p = urlparse("http://www.example.com/foo.htm?entry=the/bar#another/bar"); print(p.path.rsplit("/", 1)[-1])Resultado:foo.htmUna forma más (idio (ma) tic):
fuente
rsplit.rsplitdebe estar a la altura de la tarea:fuente
Puedes hacer así:
Donde cola será su nombre de archivo.
fuente
urlparse está bien para usar si lo desea (por ejemplo, para deshacerse de cualquier parámetro de cadena de consulta).
Salida:
fuente
fuente
from pathlib import Path print(f"Path(redirected_response.url).stem: {Path(redirected_response.url).stem!r}")Aquí hay una forma de expresión regular más general de hacer esto:
fuente
fuente
from string import rfindde su respuestapartitionyrpartitiontambién son útiles para tales cosas:fuente
Divide la URL y abre el último elemento.
url.split('/').pop()fuente
Salida:
TEST2.fuente
-1como índice, de lo contrario, esto solo funciona en cadenas con exactamente esa cantidad/