IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Traitement d'une chaine de caract�res


Sujet :

Python

  1. #1
    Membre r�gulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par d�faut Traitement d'une chaine de caract�res
    Bonjour � tous,

    Je travaille actuellement avec le Framework Zope, coupl� au CMS Plone et utilise donc pas mal de python.

    Mon objectif est de cr�er une arborescence compos�e de dossiers et de fichiers, mise en place � l'aide de la m�thode invokeFactory de Zope.

    Pour parvenir � �a, je dois "traiter" les chemins des fichiers que je r�cup�re dans un catalogue, pour recr�er l'arborescence correspondante.

    Par exemple, un fichier correspond � ce chemin: /nom_dossier1/nom_dossier11/nom_fichier

    Je voudrais savoir s'il existe une fonction permettant par exemple de r�cup�rer le nom du dossier1 en "lisant" mon chemin jusqu'au premier slash. Je cr�erai ainsi mon dossier, puis continuerai la lecture pour cr�er mon second dossier, puis finirai par cr�er un fichier, n'ayant plus de slash dans ma chaine de caract�res.

    Voil� l'id�e, j'esp�re �tre � peu pr�s clair, mais n'h�sitez pas si vous souhaitez des pr�cisions!

    Merci d'avance.

  2. #2
    Expert confirm�
    Avatar de Guigui_
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Ao�t 2002
    Messages
    1 864
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France, Sa�ne et Loire (Bourgogne)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 1 864

  3. #3
    Membre r�gulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par d�faut
    Merci pour ta r�ponse guigui, malheureusement cette solution n'est pas applicable dans mon cas.

    Je dois cr�er des objets Plone, utilisant ainsi une fonction particuli�re � laquelle je passe en param�tre le type d'objet Plone. La fonction mkDir ne permet donc pas de cr�er ce type d'objet.

    J'y ai pas mal r�fl�chi et je ne vois donc pour l'instant pas d'autre solution que de me mettre � la racine, cr�er un dossier plone, ma placer dans ce dossier, lire le chemin, cr�er le dossier suivant etc.

    C'est peut �tre une mauvaise solution, mais je n'ai pas encore trouv� mieux...


    Je vais voir ce que je peux faire avec la fonction splitunc que tu m'as indiqu�.

  4. #4
    Membre r�gulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par d�faut
    En regardant un peu ce qu'il �tait possible de faire avec la fonction split(), je suis arriv� � �a:

    path = self.restrictedTraverse("Members/" + id_user(self) + "/Documentations")
    liste_rep = chemin.split('/')

    for i in liste_rep[1:-1]:
    path.invokeFactory(id=i, title=i, type_name="Folder")
    path = (path + "/" + i)
    path.invokeFactory(id=liste_rep[-1], title=liste_rep[-1], type_name="File")
    Le path est le chemin auquel je veux cr�er mes objets.
    La fonction invokeFactory est une fonction Zope qui permet de cr�er les objets plones, de type (comme vous pouvez le voir) "Folder" ou "File" par exemple.

    Mon code renvoie une erreur sur la ligne que j'ai mise en orange.
    Le reste est fonctionnel, je l'ai test� et sans cet "incr�ment de chemin", tous mes objets se cr�ent bien dans le dossier "documentations".

    Voyez-vous par hasard une �ventuelle erreur sur cette ligne?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    30
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Par d�faut
    pourrais tu nous mettre l'erreur que tu obtiens ? Est-ce un probl�me de concat�nation ou autre chose?

    sinon je pense que tu va rencontrer un probl�me dans ton "for" si path n'est pas r�initialis� a chaque fois. un exemple simple pour expliquer ce que tu va obtenir.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    >>> path="c:/uti"
    >>> for i in ("a","b","c","d") :
    ...    path=(path+"/"+i)
    ...    print path
    ...
    c:/uti/a
    c:/uti/a/b
    c:/uti/a/b/c
    c:/uti/a/b/c/d
    apr�s tu n'as peut �tre pas ce probl�me (il suffit que path soit r�initialis� dans le for)

    MLG

Discussions similaires

  1. Traitement sur une chaine de caract�re
    Par trikker dans le forum D�buter
    R�ponses: 11
    Dernier message: 04/06/2009, 10h30
  2. Traitement d'une chaine de caract�re.
    Par azmodai dans le forum G�n�ral JavaScript
    R�ponses: 8
    Dernier message: 18/02/2009, 00h14
  3. R�ponses: 3
    Dernier message: 27/04/2008, 19h10
  4. [FLASH 8] traitement d'une chaine de caract�re
    Par KaiN_974 dans le forum Flash
    R�ponses: 17
    Dernier message: 12/06/2006, 11h42
  5. traitement d'une chaine de caract�re
    Par mohamed dans le forum MS SQL Server
    R�ponses: 2
    Dernier message: 09/12/2004, 17h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo