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 multiple de fichier


Sujet :

Python

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 146
    Par défaut Traitement multiple de fichier
    Bonjour,

    J'ai un petit probleme pour lancer le petit programme suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ListDir = ("fichier1.txt", "fichier2.txt")
    # traitement de chaque fichier
    for elem in ListDir:
       DicoOfLib = library(elem)
    j'aimerai pouvoir lancer se script quand je n'ai qu'un seul fichier et aparemment sa ne marche pas ici lorsque j'ai une liste avec un seul element...;Pourquoi??

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Pas d'erreur dans ton code, il faudrait nous en dire plus sur ta fonction library

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 146
    Par défaut
    donc si j'ai bien compris, si je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ListDir = ("fichier1.txt")
    # traitement de chaque fichier
    for elem in ListDir:
       DicoOfLib = library(elem)
    sa devrait marcher c sa??

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    oui!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> for e in ['a']:
    ...     maj = e.upper()
    ...     print maj
    ... 
    A
    C'est facilement vérifiable

    ['a'] ou ('a') c'est pareil, c'est un itérable

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 146
    Par défaut
    donc si sa m'affiche un message d'erreur c'est que cela vient obligatoirement de la fonction library??

  6. #6
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Bah ça je ne peux pas le savoir sachant que je ne la vois pas, il est possible que dans ta fonction tu utilises d'autres fonctions, je ne suis pas devin

  7. #7
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut


    Sauf que library doit contenir un open...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    >>> ListDir = ("fichier1.txt")
    >>> print(type(ListDir))
    <class 'str'>
    >>> for elem in ListDir:
    ...     print(elem)
    ... 
    f
    i
    c
    h
    i
    e
    r
    1
    .
    t
    x
    t
    >>> ListDir = ("fichier1.txt",)
    >>> print(type(ListDir))
    <class 'tuple'>
    >>> for elem in ListDir:
    ...     print(elem)
    ... 
    fichier1.txt
    Et pour info puisque on parle de liste.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    >>> ListDir = ("fichier1.txt", "fichier2.txt")
    >>> print(type(ListDir))
    <class 'tuple'>
    >>> ListDir = ["fichier1.txt", "fichier2.txt"]
    >>> print(type(ListDir))
    <class 'list'>
    >>> ListDir[0] = 'tutu'
    >>> ListDir
    ['tutu', 'fichier2.txt']
    >>> ListDir = ("fichier1.txt", "fichier2.txt")
    >>> ListDir[0] = 'tutu'
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: 'tuple' object does not support item assignment
    Cousins proches mais quand même...

    @+

  8. #8
    Membre éclairé
    Avatar de Captain'Flam
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2011
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 273
    Billets dans le blog
    1
    Par défaut
    Il manque une virgule !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ("spam")  #juste une chaîne avec des parenthèses inutiles
    ("spam",) # un tuple avec un seul élément
    La différence c'est la virgule ("spam",) !
    Pour s'en convaincre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> type( ("spam") )
    <type 'str'>
    >>> type( ("spam",) )
    <type 'tuple'>
    Du coup, essaie ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ListDir = ("fichier1.txt", )
    # traitement de chaque fichier
    for elem in ListDir:
       DicoOfLib = library(elem)

  9. #9
    Membre éclairé
    Avatar de Captain'Flam
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2011
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 273
    Billets dans le blog
    1
    Par défaut
    Oops ! pardon PauseKawa, je n'avait pas vu que ton post comportait aussi la réponse...

  10. #10
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Arf oui (j'ai été un peu vite sur ce coup ) , mais le plus simple reste l'utilisation de la liste, mais bon chacun ses goûts. Il paraît que les tuples sont un peu plus rapide que des listes.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 146
    Par défaut
    oui alors le probleme c'est que ma liste n'est pas codé en dur genre List = ("fichier1.txt",fichier2.txt") au contraire je récupère des éléments que j'introduis dans une liste du genre List = ma_liste_de_fichier()......Du coup comment faire pour insérer une virgule à une liste déja existente

  12. #12
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Si l'on considère que ma_liste_de_fichier() retourne "fichier1.txt"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> ListDir = "fichier1.txt" # Le retour de ma_liste_de_fichier() donc
    >>> ListDir = (ListDir,)
    >>> ListDir
    ('fichier1.txt',)

  13. #13
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Et si vous ne savez pas ce que retourne ma_liste_de_fichier()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> ListDir = "fichier.txt"
    >>> if type(ListDir) is str:
    ...     ListDir = (ListDir,)
    ... 
    >>> ListDir
    ('fichier.txt',)

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 146
    Par défaut
    ok merci pour tous....J'ai une autre question qui n'a rien a voir, j'aimerais savoir comment faire pour demander à l'tilisateur de choisir entre 2 options, du genre ceci:

    toto[25> main.py
    1.a
    2.b
    Choisir entre a et b?

  15. #15
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Et bien les réponses sont multiples dans ce cas, du tout simple input au getch multi plateforme.
    Vous devriez créer un nouveau sujet.

Discussions similaires

  1. Java et XML : Traitement d'un fichier XML avec JAVA
    Par nice dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 18/05/2006, 21h24
  2. Réponses: 3
    Dernier message: 29/04/2006, 11h58
  3. [INFO] Traitement d'un fichier texte
    Par doudine dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 25/04/2006, 09h23
  4. [VBA-E]Traitement d'un fichier excel
    Par climz dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 12/04/2006, 14h28
  5. [C#] [XML] Traitement de gros fichiers XML (90 Mo)
    Par Pulsahr dans le forum Windows Forms
    Réponses: 20
    Dernier message: 01/12/2005, 14h40

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