¿Cómo puedo extraer lo que sigue a la última barra en una dirección URL en Python? Por ejemplo, estas Url debe 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
He intentado urlparse, pero que me da la ruta completa de acceso de nombre de archivo, tales como page/page/12345
.
- Si la dirección URL puede contener cadenas de consulta como
...?foo=bar
y no quieres; te sugiero utilizarurlparse
en combinación con naeg delbasename
-sugerencia. - docs.python.org/library/urlparse.html#module-urlparse
No se necesitan cosas, acaba de ver la cadena de métodos en la biblioteca estándar y usted puede fácilmente dividir su url entre ‘nombre de archivo’ parte y el resto:
Así que usted puede conseguir la parte que interesa simplemente con:
url.rsplit('/', 1)
devuelve una lista, yurl.rsplit('/', 1)[-1]
es poco después de la última barra.Uno más (los(ma)tic) forma:
rsplit
.rsplit
debe estar a la tarea:Que usted puede hacer como este:
Donde la cola será su nombre de archivo.
urlparse está bien para usar, si se desea (por ejemplo, para deshacerse de los parámetros de cadena de consulta).
De salida:
from string import rfind
de su respuestaHe aquí una más general, regex forma de hacer esto:
partition
yrpartition
también son útiles para este tipo de cosas:Dividir la url del pop y el último elemento
url.split('/').pop()
De salida:
TEST2
.-1
como el índice, de lo contrario, esto sólo funciona en las cadenas con exactamente que muchos/