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 :

Aide avec l'exportation de fichier csv [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2023
    Messages : 4
    Par défaut Aide avec l'exportation de fichier csv
    j'ai un fichier csv sous cette forme :

    Album;groupe;année;classement Top 50
    Master of Puppets;Metallica;1986;1
    Paranoid;Black Sabbath;1970;10
    Rage against the machine;Rage against the machine;1992;5
    High;David Hallyday;1989;8
    Ride the ligthning;Metallica;1984;2
    Rust in peace;Megadeth;1990;12
    Laughing stock;Talk Talk;1991;7
    Let love rule;Lenny Cravitz;1989;2
    The unforgiven;Metallica;1991;1
    Wanna take my time;David Hallyday;1989;3
    Let's to go to bed;The Cure;1984;1
    give me one reason;Tracy Chapman;1996;1
    Spirit of Eden;Talk Talk;1988;9
    Slagehammer funky;Peter Gabriel;1986;6
    Don't tread on me;Metallica;1991;2
    I don't want a lover;Texas;1989;5
    Listening;David Hallyday;1989;8
    Disintegration;The Cure;1989;4
    Enter Sandman;Metallica;1991;6

    mais quand je le copie et modifie dans la fonction suppr() il y des problèmes de saut de ligne :

    Album;groupe;année;classement Top 50

    Master of Puppets;Metallica;1986;1

    Paranoid;Black Sabbath;1970;10

    Rage against the machine;Rage against the machine;1992;5

    High;David Hallyday;1989;8

    Ride the ligthning;Metallica;1984;2

    Rust in peace;Megadeth;1990;12

    Let love rule;Lenny Cravitz;1989;2

    Wanna take my time;David Hallyday;1989;3

    Let's to go to bed;The Cure;1984;1

    give me one reason;Tracy Chapman;1996;1

    Spirit of Eden;Talk Talk;1988;9

    Slagehammer funky;Peter Gabriel;1986;6

    I don't want a lover;Texas;1989;5

    Listening;David Hallyday;1989;8

    Disintegration;The Cure;1989;4

    lover;Texas;1989;5
    Listening;David Hallyday;1989;8
    Disintegration;The Cure;1989;4
    Enter Sandman;Metallica;1991;6

    quelqu'un pourrait il m'aider s'il vous plait ?
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 603
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 603
    Par défaut
    Pas testé mais sûrement un oubli d'option newline ligne 142 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    writer=csv.DictWriter(f,fieldnames=fieldnames,delimiter=';', newline='')
    A essayer.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2023
    Messages : 4
    Par défaut
    Citation Envoyé par Arioch Voir le message
    Pas testé mais sûrement un oubli d'option newline ligne 142 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    writer=csv.DictWriter(f,fieldnames=fieldnames,delimiter=';', newline='')
    A essayer.
    cela ne marche pas ca me donne : File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.1008.0_x64__qbz5n2kfra8p0\Lib\csv.py", line 139, in __init__
    self.writer = writer(f, dialect, *args, **kwds)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    TypeError: 'newline' is an invalid keyword argument for this function

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par GeantCreeper Voir le message
    quelqu'un pourrait il m'aider s'il vous plait ?
    T'aider à quoi? Ton fichier est écrit selon la norme CSV définit par la RFC 4180, norme qui précise que les lignes doivent se terminer par '\r\n' pour être compatibles Excel.
    Un fichier CSV n'est pas destiné à être lu mais à être traité. Si maintenant tu veux l'écrire à ta façon tu as le droit mais tu dois alors passer par des fonctions d'écriture standard.

    Accessoirement (et c'est écrit dans les règles) on poste ses codes dans le forum. Cela permettra aux visiteurs de demain de continuer à accéder au code s'ils ont un souci analogue et surtout ça évite aux contributeurs de devoir "en plus" se télécharger ton truc pour pourvoir t'aider (mon disque te dit "merci" et je vais maintenant aller purger le dossier de téléchargement temporaire de mon navigateur !!!)

    Citation Envoyé par GeantCreeper Voir le message
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    def choix(dicocsv):
    	print("Que voulez vous faire ?")
    	...
    	if "1"==ch:
    		informations(dicocsv)
    	elif "2"==ch:
    		albums(dicocsv)
    	elif "3"==ch:
    		noms(dicocsv)
    	elif "4"==ch:
    		suppr(dicocsv)
    	else:
    		print("il y a une erreur dans votre entrée")
    		choix(dicocsv)
    T'es sérieux là?
    T'as tellement la flemme d'écrire une boucle que tu invoques la récursivité pour réafficher ton menu? Et le fait que la récursivité mémorise tout le niveau N pour créer un niveau N+1 vierge tout en offrant la possibilité d'y revenir ça ne te dérange pas plus que ça!!! A la 15° itération ton code bouffera 500Mo de RAM et tu te demanderas d'où ça vient.
    Accessoirement je ne pige pas ta méthode "je copie fic1 dans fic2 pour le modifier puis je renomme fic2 dans fic3". Quand tu vas t'acheter des mars, est-ce que tu sors la monnaie de la poche gauche pour la ranger dans la poche droite avant de demander à la vendeuse de venir la prendre???
    Et ce n'est que le haut de l'iceberg. Ton code est écrit à la "va comme je te pousse". Tu génères 2 copies des infos sous deux formats différents pour un choix d'affichage (dans mon monde, on génère l'info une seule fois et on l'affiche ensuite dans 50 formats différents si on veut). Tu ouvre un fichier en début de fonction puis tu commences à l'écrire 30 lignes plus bas, bref...

    Citation Envoyé par Arioch Voir le message
    A essayer.
    J'ai testé mais ça n'a rien donné de mieux (et l'option se met dans open(), pas dans DictWriter() => https://docs.python.org/3/library/csv.html#examples)
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 603
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 603
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    J'ai testé mais ça n'a rien donné de mieux (et l'option se met dans open(), pas dans DictWriter() => https://docs.python.org/3/library/csv.html#examples)
    Oui, j'ai encore perdu une occasion de me taire

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 09/01/2015, 15h38
  2. [EG] Exporter un fichier CSV avec un nom dynamique
    Par xav2229 dans le forum Outils BI
    Réponses: 0
    Dernier message: 04/01/2012, 15h33
  3. Export en fichier CSV d'un select sql ?
    Par Devilstuff dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 17/01/2010, 15h05
  4. Export de fichiers csv
    Par sabredebois dans le forum Outlook
    Réponses: 1
    Dernier message: 10/02/2009, 16h21
  5. [A-03] Export vers fichier CSV (format)
    Par Pownee dans le forum VBA Access
    Réponses: 3
    Dernier message: 06/02/2009, 18h12

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