557 votes

Comment puis-je supprimer une sous-chaîne à partir de la fin d'une chaîne de caractères en Python?

J'ai le code suivant:

url = 'abcdc.com'
print url.strip('.com')

J'attendais: abcdc

J'ai eu: abcd

Maintenant, je ne

url.rsplit('.com', 1)

Est-il un meilleur moyen?

848voto

Steef Points 9308

Vous pouvez faire ceci:

url = 'abcdc.com'
if url.endswith('.com'):
    url = url[:-4]

Ou en utilisant des expressions régulières:

import re
url = 'abcdc.com'
url = re.sub('\.com$', '', url)

111voto

Charles Collis Points 211

En fait le moyen le plus simple serait d'utiliser "remplacement":

url = 'abcdc.com'
print url.replace('.com','')

72voto

yairchu Points 9694
def strip_end(text, suffix):
    if not text.endswith(suffix):
        return text
    return text[:len(text)-len(suffix)]

28voto

dagw Points 1545

Dépend de ce que vous savez au sujet de votre url et exactement ce que vous êtes tryinh à faire. Si vous savez qu'il va toujours à la fin".com' (ou '.net "ou".org'), alors

 url=url[:-4]

est la solution la plus rapide. Si c'est un problème plus général de l'Url, alors vous êtes probablement mieux de regarder dans le urlparse bibliothèque qui vient avec python.

Si vous en revanche vous voulez simplement supprimer tout ce qui est après la finale de". " dans une chaîne puis

url.rsplit('.',1)[0]

va travailler. Ou si vous voulez juste envie de tout, jusqu'à la première". " puis essayer

url.split('.',1)[0]

14voto

truppo Points 10346

bande bandes les caractères des deux extrémités de la chaîne, dans votre cas, c'bandes ".", "c", "o" et "m".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X