¿Cómo obtener todo después de la última barra en una URL?

¿Cómo puedo extraer lo que sigue a la última barra diagonal 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 

He intentado urlparse, pero eso me da el nombre completo de la ruta, como page/page/12345 .

No necesita cosas elegantes, solo vea los métodos de cadena en la biblioteca estándar y puede dividir fácilmente su URL entre la parte de ‘nombre de archivo’ y el rest:

 url.rsplit('/', 1) 

Para que pueda obtener la parte que le interesa simplemente con:

 url.rsplit('/', 1)[-1] 

Una forma más (idio (ma) tic):

 URL.split("/")[-1] 

rsplit debe estar a la altura de la tarea:

 In [1]: 'http://www.test.com/page/TEST2'.rsplit('/', 1)[1] Out[1]: 'TEST2' 

Tú puedes hacer esto:

 head, tail = os.path.split(url) 

Donde cola estará tu nombre de archivo.

urlparse está bien para usar si desea (por ejemplo, deshacerse de cualquier parámetro de cadena de consulta).

 import urllib.parse urls = [ 'http://www.test.com/TEST1', 'http://www.test.com/page/TEST2', 'http://www.test.com/page/page/12345', 'http://www.test.com/page/page/12345?abc=123' ] for i in urls: url_parts = urllib.parse.urlparse(i) path_parts = url_parts[2].rpartition('/') print('URL: {}\nreturns: {}\n'.format(i, path_parts[2])) 

Salida:

 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 URL: http://www.test.com/page/page/12345?abc=123 returns: 12345 
 extracted_url = url[url.rfind("/")+1:]; 

Aquí hay una forma más general, regex de hacer esto:

  re.sub(r'^.+/([^/]+)$', r'\1', url) 

partition y la partition también son útiles para estas cosas:

 url.rpartition('/')[2] 

Divide la url y url.split('/').pop() el último elemento url.split('/').pop()

 os.path.basename(os.path.normpath('/folderA/folderB/folderC/folderD/')) 

carpetaD

 url ='http://www.test.com/page/TEST2'.split('/')[4] print url 

Salida: TEST2 .