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 fichier txt pour Excel


Sujet :

Python

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 237
    Points : 99
    Points
    99
    Par défaut Traitement fichier txt pour Excel
    Bonjour à tous,

    L'extraction d'un base de données génère un fichier au format texte suivant le modèle ci-joint. Je souhaite le traiter pour le rendre exploitable dans Excel.

    Je pensais faire de la façon suivante :
    1 - Mettre en forme le fichier en supprimant les lignes inutiles
    2 - Mettre au format CSV
    3 - Mettre en forme mes données (date, nombres...)

    Pouvez vous me donner votre avis sur la façon de procéder ?
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éclairé

    Inscrit en
    Novembre 2008
    Messages
    418
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 418
    Points : 829
    Points
    829
    Par défaut
    Pour ma part, je ferais :
    (pseudo code à finaliser, notamment les fonction de reformattage)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    for l in open(filename):
        if l[0] != "|":
            continue
        cells = l.split("|") # et même cells = [cell.strip() for cell in l.split("|")]
        if cells[1]=="Nom Client":
            ecrire_csv_header(cells)
        if cells[3].isdigit():
            cells[6] = reformat_date(cells[6])
            cells[7] = reformat_date(cells[7])
            cells[10] = reformat_montant(cells[10])
            ecrire_csv_row(cells)

  3. #3
    Membre expérimenté
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 947
    Points : 1 351
    Points
    1 351
    Par défaut
    Salut,

    Citation Envoyé par jouclar Voir le message
    L'extraction d'un base de données génère un fichier au format texte suivant le modèle ci-joint. Je souhaite le traiter pour le rendre exploitable dans Excel.
    Es-tu sûr que ta base de données n'exporte pas sous un autre format plus utilisable? D'ailleurs, je ne pense pas que ce soit la base de données qui génère ça, mais un programme qui l'interroge?

    Il y a des données facilement exploitables (les lignes 9 à 21), mais l'entête et le bas de page, faut-il l'intégrer au csv et comment? Y a -til une règle genre 'on ignore les 8 premières lignes et les 9 dernières'? Le problème risque d'ailleurs d'empirer si le listing fait plusieurs pages, avec un numéro de page ou un sous-total au bas de chaque page. Bref, je pense qu'on fait là dans l'empirique, car ce qui est généré là est une édition et non un document de travail.

    A+

    Pfeuh

Discussions similaires

  1. Réponses: 8
    Dernier message: 08/03/2007, 16h54
  2. Réponses: 2
    Dernier message: 26/01/2007, 14h58
  3. [VBA-Excel] Ouvrir un lot de fichier txt dans Excel
    Par Trollakuir dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 30/06/2006, 10h02
  4. ouverture de fichier txt avec excel
    Par blondelle dans le forum C++Builder
    Réponses: 5
    Dernier message: 24/05/2006, 11h33
  5. Optimiser traitement fichier [.txt]
    Par Metallic-84s dans le forum Langage
    Réponses: 14
    Dernier message: 16/03/2006, 13h33

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