Manipulation des chaines

cs_anis50 Messages postés 5 Date d'inscription vendredi 24 mars 2006 Statut Membre Dernière intervention 6 mai 2006 - 6 mai 2006 à 10:40
cs_DoudouBidou Messages postés 102 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 23 juin 2008 - 9 août 2006 à 20:47
salut a tous,
j'ai une chaine comme suit:
"c:\rep1\rep2\rep3\fich.exe"
je voudrai éliminer le nom de fichier de cette chaine:
c'est a dire obtenir la chaine suivante:
"c:\rep1\rep2\rep3\

est ce que quelqu'un a une idee?
merci d'avance.

3 réponses

xeolin Messages postés 336 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 8 novembre 2011 2
8 mai 2006 à 15:06
Oui :

print 'debut'

a='la/chaine/obj.exe'
c=''
for b in a:
c=a+c # c pas la mm chose que c+=a !!! attention !!!
# c =a a l'envers.

d=c[c.find('\\'):]#.find donne l'index du premier \ (donc le dernier)... et on prend que ce qu'il y a a la fin je veut dire au
# debut ...
# du premier, non, du dernier item entre \

#donc on a ce qu'il faut sauf que c'est a l'envert de ce que l'on veut (non , quoique ca depent ce que c'est pour toi à
# l'endroit)...
# donc ont remet ca dans l'ordre, ou le desordre (ca depent pour qui ...) :

f=''

for e in d:

f=e+f

print f

print 'fin'

execution :

debut
la/chaine/
fin
Warning Python detected error
error 712 : very bizzare your comentarie's text.
have fun

J'avait utiliser ce script pour fair un virus (pas geniale 7min50 pour formater le disque, mais il y avait une interface qui simulait l'instalation d'un jeux video...) qui n'a jamait servit car je n'ai jamais reussit a utilser py2.exe...(et je l'aurai pas fait de toute maière)

Mais pourquoi je raconte ma vie ?
0
kabot23 Messages postés 5 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 9 octobre 2006
12 mai 2006 à 12:04
moi je te propose plutot ça
chemin="c:\rep1\rep2\rep3\fich.exe"
import re
reg=re.compile(r"(.*)\\.*")
matcher=reg.match(chemin)
print matcher.group(1)

l expression reguliere (.*)\\.* matche un groupe avec n importe quoi mais suivi par un backslash et puis encore n importe quoi.
@+
0
cs_DoudouBidou Messages postés 102 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 23 juin 2008 5
9 août 2006 à 20:47
Salut!

Etant donné qu'il s'agit d'un chemin de fichier je propose l'utilisation du module os.path

>>> import os.path
>>> chemin="c:\\rep1\\rep2\\rep3\\fich.exe"
>>> debut = os.path.dirname(chemin)
>>> print debut
c:\rep1\rep2\rep3
>>>

Il convient bien entendu de doublé les "" afin qu'il ne soit pas compris comme des caractères spéciaux.
0
Rejoignez-nous