5 votes

Supprimer une partie d'un chemin séparé par des points

Étant donné un chemin, par exemple

file_path = 'a.b.c.d.e'

Je souhaite supprimer le e .
C'est ce que j'ai fait :

class_path = ('.').join(file_path.split('.')[0:-1])

Y a-t-il un moyen plus élégant de le faire ?

4voto

ipaleka Points 3055
import os
os.path.splitext(file_path)[0]

3voto

RomanPerekhrest Points 54365

Simplement avec str.rfind fonction :

file_path = 'a.b.c.d.e'
file_path = file_path[:file_path.rfind('.')+1]
print(file_path)   # a.b.c.d.

Si la queue . n'est pas nécessaire - supprimez +1 déplacement : ( file_path[:file_path.rfind('.')] ).

3voto

jofrev Points 314

Vous pourriez utiliser rpartition par exemple, si vous voulez vous en tenir à méthodes de chaîne :

class_path = file_path.rpartition('.')[0]

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