Comment obtenir tout ce qui est après le dernier slash dans une URL?
Comment puis-je extraire tout ce qui suit le dernier slash dans une URL en Python? Par exemple, ces Url doit retourner les éléments suivants:
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
J'ai essayé urlparse, mais qui me donne le chemin complet du nom de fichier, tels que page/page/12345
.
- Si l'URL peut contenir des querystrings comme
...?foo=bar
et vous ne voulez pas cela; je vous conseille d'utiliserurlparse
en combinaison avec naeg debasename
-suggestion. - docs.python.org/library/urlparse.html#module-urlparse
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin de fioritures, juste voir la chaîne de méthodes dans la bibliothèque standard et vous pouvez facilement diviser votre url entre le nom de fichier de la partie et le reste:
De sorte que vous pouvez obtenir la pièce que vous êtes intéressé à tout simplement avec:
url.rsplit('/', 1)
renvoie une liste, eturl.rsplit('/', 1)[-1]
est le bit après le dernier slash.Un plus (idio(ma)tic) de manière à:
rsplit
doit être à la hauteur:Vous cand faire comme ceci:
Où la queue sera le nom de votre fichier.
urlparse est bien d'utiliser si vous le souhaitez (par exemple, pour se débarrasser de toutes les paramètres de chaîne de requête).
De sortie:
from string import rfind
de votre réponseVoici une manière plus générale, la regex façon de faire:
partition
etrpartition
sont également à portée de main pour de telles choses:Diviser l'url et de la pop le dernier élément
url.split('/').pop()
De sortie:
TEST2
.-1
que l'indice, sinon cela ne fonctionne que sur des chaînes de caractères avec exactement ce que beaucoup de/