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 :

Crochets, retour chariot, et point virgules dans CSV [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de _Agrid
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 112
    Par défaut Crochets, retour chariot, et point virgules dans CSV
    Bonjour à tous

    Je cherche a créer un fichier CSV à partir de données aléatoire et un petit coup de main serait le bienvenu

    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
     
    import numpy, csv
     
    def echantillon_sexe():
        panel_sexe = {'Homme':0.5,'Femme':0.5}
        res = numpy.random.choice(list(panel_sexe.keys()),1,p=list(panel_sexe.values()))
        return res
     
    def echantillon_age():
        choix_age = [10,20,30,40,50,60]
        probabilite_age = [0.1, 0.2, 0.3,0.1,0.2,0.1]
        res = numpy.random.choice(choix_age,1,p=probabilite_age)
        return res
     
    def echantillon_parcours():
        choix_parcours = ['Jaune','Orange','Rouge','Noir']
        probabilite_parcours = [0.25,0.25,0.25,0.25]
        res = numpy.random.choice(choix_parcours,1,p=probabilite_parcours)
        return res
     
    for x in range(10):
        visite=[echantillon_sexe(), echantillon_age(), echantillon_parcours()]
        with open("import_v2.csv", "a") as csv_file:
           csv_app = csv.writer(csv_file, dialect='excel')
           csv_app.writerow(visite)
    Mon résultat :

    ['Femme'],[40],['Jaune']

    ['Homme'],[10],['Jaune']

    ['Femme'],[10],['Noir']
    Ce que je souhaite, c'est supprimer les [] et les retours chariots inutiles

    Je pensais également que le dialecte 'excel' me permettrait d'avoir des points virgules au lieu des virgules
    Est que je dois prévoir un post-traitement ou est qu'il y a une incantation magique à votre connaissance ?

    Je vous remercie

    _Agrid

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2013
    Messages : 388
    Par défaut
    Salut,
    Il faut fournir à writerow une seule liste. Tu donnes une liste de listes. Essaie avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    visite = echantillon_sexe().tolist() + echantillon_age().tolist() + echantillon_parcours().tolist()
    La méthode writer permet de choisir le delimiteur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    csv_app = csv.writer(csv_file, delimiter=";")

  3. #3
    Membre confirmé Avatar de _Agrid
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 112
    Par défaut
    Impec __dardanos__, je te remercie, cela fonctionne

    Il y a juste un truc étrange

    Quand j'ouvre le fichier avec un notepad, les lignes se suivent. Dans le cas d'une ouverture avec Excel il m'insère des lignes vides entre chaque ligne de données

    Une idée ?

  4. #4
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2013
    Messages : 388
    Par défaut
    Je n'ai pas ce problème. Le module csv utilise par défaut les caractères "\r\n" comme fin de ligne. Ton éditeur doit être configuré autrement. Ce paramètre est modifiable dans la plupart des éditeurs.

  5. #5
    Membre confirmé Avatar de _Agrid
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 112
    Par défaut
    Je te remercie

    Je vais regarder ça

    Bonne Journée

    _Agrid

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion des points-virgule dans un CSV
    Par prissou53 dans le forum Langage
    Réponses: 2
    Dernier message: 15/05/2014, 16h45
  2. Supprimer les espaces compris entre deux points virgules dans un fichier csv
    Par moctarim dans le forum Shell et commandes POSIX
    Réponses: 2
    Dernier message: 04/01/2013, 17h03
  3. [AC-2000] Retour chariot entre deux champs dans un état ?
    Par jncoffy dans le forum IHM
    Réponses: 3
    Dernier message: 14/09/2009, 16h41
  4. point virgule dans export fichier texte
    Par Ludwik dans le forum VBA Access
    Réponses: 8
    Dernier message: 21/04/2009, 21h46
  5. lire le point-virgule dans un fichier .ini
    Par juflata dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 05/07/2004, 12h46

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