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 :

formattage en table


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 23
    Par défaut formattage en table
    Bonjour a tous!

    Je dispose de la liste suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ['AAAB', '0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00']
    ['AL', '0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00', '0.000E+00']
    Je souhaiterais imprimé cette list dans un fichier text avec un formattage spécifique, sans tabulation, de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    AAAB    0.000E+00 0.000E+00 0.000E+00 0.000E+00 0.000E+00 0.000E+00
    AL      0.000E+00 0.000E+00 0.000E+00 0.000E+00 0.000E+00 0.000E+00
    Je souhaite avoir le contrôle sur le nombre d'espace qu'il y a entre chaque colonne. Par exemple, la premiere colonne doit faire 8 caractère: donc la première ligne de la première colonne doit faire AAAB____ (4 caratère et 4 espaces). La seconde ligne de la première colonne doit faire donc AL______ (2 caractères, 6 espaces) . Les autres colonnes doivent faire 9 caractères: format X.XXXE+XX_

    J'ai pour le moment celà:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    col_width = 8  
     outfile.writelines(' '+"".join(line[0].ljust(col_width)))   #imprime seulement le premier mot de la liste
    Je n'arrive a imprimer les autres éléments de la liste en utilisant le formating.

    Merci de votre aide !

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Avec la méthode format, c'est facile. Voir ici: https://docs.python.org/3/library/st...-mini-language

    1ère colonne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ch = 'AAAB'
    chf = "{:<8s}".format(ch)
    print(chf) 
    print(len(chf))
    Ce qui affiche:

    Dans la chaine de format "{:<8s}":
    => "<" veut dire "caler à gauche,
    => "8" veut dire 8 colonnes en tout
    => et "s" veut dire "chaine de caractères".

    Colonnes suivantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    x = 12.36987
    chf = "{:<9.3E}".format(x)
    print(chf) 
    print(len(chf))
    Ce qui affiche:

    Dans la chaine de format "{:<9.3E}":
    => "<" veut dire "caler à gauche,
    => "9" veut dire 9 colonnes en tout
    => ".3" veut dire 3 chiffres après la virgule
    => et "E" veut dire "notation exponentielle" avec un "E" majuscule.

Discussions similaires

  1. passage d'un nom de table dans une procédure stockée
    Par thierry V dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 26/07/2010, 16h48
  2. Réparation table/entête endommagée
    Par tbesrour dans le forum Paradox
    Réponses: 15
    Dernier message: 27/11/2007, 10h42
  3. [ADO] Tester l'existence d'une table
    Par nd25 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 05/09/2002, 13h55
  4. Newbie......compilateur et table de caractères
    Par Cyberf dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 21/08/2002, 14h29
  5. [Comparatifs] Limites nombres tables et quantité de données
    Par benj63 dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 13/06/2002, 21h31

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