Bonjour,
J'ai un fichier xxxx.txt
Je souhaite juste récupérer le nom de ce fichier sans son extension de sorte que lorsque je fais
il m'affiche xxxx
Y'a t-il un moyen svp ? merci
Bonjour,
J'ai un fichier xxxx.txt
Je souhaite juste récupérer le nom de ce fichier sans son extension de sorte que lorsque je fais
il m'affiche xxxx
Y'a t-il un moyen svp ? merci
Bonjour,
peu être en utilisant les expressions régulières :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 import re m = re.search('[^.]*','xxxx.txt') print m.group(0)xxxx
Bonjour
Une expression régulière pour récupérer ce qu'il y a avant un '.' dans une chaine, c'est un peu "grosse Bertha".
split() fait tout aussi bien l'affaire.
De plus, quand il s'agit d'un nom de fichier, os.path.splitext est même mieux : souvent les fichiers subissent plusieurs transformations et les extensions s'enchainent :
ici, le fichier gzippé c'est xxxx.tar, pas xxx
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 >>> m = re.search('[^.]*','xxxx.tar.gz') >>> m.group(0) 'xxxx' >>> os.path.splitext('xxxx.tar.gz') ('xxxx.tar', '.gz')
Pour peu que ce soit un chemin, avec un répertoire dont le nom contient un '.' (versions) et pas un simple nom, la différence est encore plus flagrante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 >>> m = re.search('[^.]*','a/b/c.d/xxxx.tar.gz') >>> m.group(0) 'a/b/c' >>> os.path.splitext('a/b/c.d/xxxx.tar.gz') ('a/b/c.d/xxxx.tar', '.gz')
Bonjour
Bon je suis pas un pro Python, mais si il souhaites vraiment ne pas avoir la ou les extensions versions possible, pourquoi ne pas utilisé tout simplement split() comme dit au dessus ?
Les deux for peuvent être fait en même temps je penses. Seul soucis de sa, si ton fichier s'appel "fichier.quelquechose.tar", dans ta liste tu n'auras que "ficier"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 listFile = ('Fichier1.txt', 'Fichier2.tar.gz', 'Fichier3.gz.tu' listFileSplit = [] listFinal = [] for x in listFile: listFileSplit.append(x.split(".")) for x in listFileSplit: listFinal.append(x[0])
Bonjour,
le module os propose cela.
Ceci renvoie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #! /usr/bin/env python #coding=utf-8 import os for onePath in [ "/monDossier/MonFichier.txt", "/monDossier/MonFichier", "MonFichier.txt", "MonFichier", ]: print os.path.splitext(os.path.basename(onePath))[0]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 MonFichier MonFichier MonFichier MonFichier
Tout dépendra du contexte. Je voulais seulement, en parlant de os.path.splitext, élargir la discussion, d'autant que, parfois les questions sont posées "à minima". Connaître son existence ne mange pas de pain et c'était une bonne occasion. C'est toutmais si il souhaites vraiment ne pas avoir la ou les extensions versions possible, pourquoi ne pas utilisé tout simplement split() comme dit au dessus ?
[...]
Seul soucis de sa, si ton fichier s'appel "fichier.quelquechose.tar", dans ta liste tu n'auras que "ficier"
Oups, j'avais pas lu en détail ton message.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager