écriture d'un fichier csv avec un dictionnaire
mamiemando Messages postés 33336 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 5 novembre 2024 - 17 juin 2024 à 12:30
- écriture d'un fichier csv avec un dictionnaire
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
- Télécharger dictionnaire larousse pdf gratuit - Télécharger - Dictionnaires & Langues
- Ouvrir un fichier .bin - Guide
5 réponses
Modifié le 15 juin 2024 à 13:32
bonjour,
Ta première erreur, je pense, est d'utiliser l'option "w" en ligne 45. Cela crée donc à chaque fois un nouveau fichier.
Je pense que cela explique que tu ne voies que les données de la dernière ligne.
15 juin 2024 à 14:31
Ok, mais sinon monfichier n'existe pas , je voulais le Crée
15 juin 2024 à 14:54
Bonne idée, connais-tu une autre option que "w", qui permette de faire cela sans vider le fichier à chaque fois?
15 juin 2024 à 15:20
Salut,
'a', comme append ?
Modifié le 17 juin 2024 à 12:24
Bien sûr, je vais essayer
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question16 juin 2024 à 07:31
Bonjour, effectivement je récupères les données. Néanmoins dans le fichier sur chaque ligne il me récupère le header et 5fois la même information et ainsi de suite.
une idée de ce qui peut être à l'origine
Merci
16 juin 2024 à 12:08
L'origine m'en semble limpide. Examine bien tes lignes 48 et 49.
En réalité, l'ensemble de ton code est mal conçu. On dirait que tu as commencé avec l'idée d'accumuler toutes les données et puis de tout écrire dans le fichier csv. Puis que tu as oublié cette idée et que tu écris au fur et à mesure.
Du coup, tout est bancal.
Modifié le 17 juin 2024 à 12:30
Je rejoins yg_be, de manière générale, on ne s'amuse pas à ouvrir plusieurs fois un même fichier, on le fait une fois pour toute, et tant qu'on en a besoin. Dans ton cas, tu devrais avoir deux descripteurs de fichiers ouverts : un en lecture, et un en écriture. On peut écrire dans un fichier ouvert en écriture avec :
with open("bonjour.txt", "w") as f: for i in range(10): print(i, file=f)
Par ailleurs, vu que le donnée que tu veux sauver est un dictionnaire, il serait peut être plus avisé de la sauver dans un fichier json (au lieu de csv) :
import json d = {"a": 1, "b": 2} # Sauvegarde dans toto.json with open("toto.json", "w") as f: json.dump(d, fp=f) # Chargement depuis toto.json d2 = None with open("toto.json", "r") as f: d2 = json.load(fp=f) print(d2)
Bonne chance