CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • French Days
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • French Days
  • RetourHigh-Tech
    • French Days
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet : Python-panda: enregistrer des informations dans un fichier csv.

News culture
La Planète des Singes : Le Nouveau Royaume - la révolution simienne est en marche !
DébutPage précedente
1
Page suivantePage suivante
Gaarou Gaarou
MP
Niveau 1
02 mars 2021 à 09:04:01

Bonjour,
Je dois actuellement créer un programme qui utilise un fichier csv. pour récupérer des informations. Jusqu'ici tout va bien. Mon problème c'est que je n'arrive pas ensuite à enregistrer de nouvelle info dans le fichier csv. déjà existant. Si quelqu'un aurait la fonction je suis preneur.
Bonne journée

Proutozorent Proutozorent
MP
Niveau 7
02 mars 2021 à 12:10:52

Hello

Pour lire ton fichier csv tu fais un truc style

import pandas as pd
DF = pd.read_csv("fichier.csv", sep=";")

Pour l'enregistrer, il suffit de faire à peu près la même manip

import pandas as pd
DF = pd.read_csv("fichier.csv",sep=";")
#Traitement sur ton dataframe...
DF.to_csv("fichier.csv",sep=";",index=False)

Note que les paramètres de lecture et d'écriture dépendent de la nature de ton fichier et que c'est susceptible de changer. J'ai utilisé ";" comme séparateur car il est lu directement par excel sans avoir à lui fournir le séparateur.

Ensuite, l'enregistrement via to_csv ne marche pas si ton fichier est ouvert. Ton fichier peut être ouvert si tu l'ouvres en dehors de ton programme (genre avec excel) ou si tu l'ouvres via ton programme via quelque chose comme ça :

file = open("fichier.csv","w")
...
traitement via pandas
...
file.close()

Donc mieux vaut avoir excel fermé + utiliser read_csv de pandas

Gaarou Gaarou
MP
Niveau 1
03 mars 2021 à 19:47:09

Le 02 mars 2021 à 12:10:52 Proutozorent a écrit :
Hello

Pour lire ton fichier csv tu fais un truc style

import pandas as pd
DF = pd.read_csv("fichier.csv", sep=";")

Pour l'enregistrer, il suffit de faire à peu près la même manip

import pandas as pd
DF = pd.read_csv("fichier.csv",sep=";")
#Traitement sur ton dataframe...
DF.to_csv("fichier.csv",sep=";",index=False)

Note que les paramètres de lecture et d'écriture dépendent de la nature de ton fichier et que c'est susceptible de changer. J'ai utilisé ";" comme séparateur car il est lu directement par excel sans avoir à lui fournir le séparateur.

Ensuite, l'enregistrement via to_csv ne marche pas si ton fichier est ouvert. Ton fichier peut être ouvert si tu l'ouvres en dehors de ton programme (genre avec excel) ou si tu l'ouvres via ton programme via quelque chose comme ça :

file = open("fichier.csv","w")
...
traitement via pandas
...
file.close()

Donc mieux vaut avoir excel fermé + utiliser read_csv de pandas

Mercii beaucoup pour ton aide

Gaarou Gaarou
MP
Niveau 1
03 mars 2021 à 20:51:26

J'ai essayé comme tu m'a dit, mais le problème c'est que cela me créé un nouveau fichier csv.
Je vous passes mon code, ça se trouve vous aller mieux comprendre:

from pandas import DataFrame
import pandas as pd

df = pd.read_csv('user_info.csv', delimiter=';')
b = df['email']
c = df['password']

nombre_element = len(b)

new_mail = input("Rentrez votre adresse email: ")
new_mdp = input("Rentre votr mot de passe: ")

a = 0
for csv_email in df['email'] :
if str(csv_email).strip() == str(new_mail) :
print("Votre adresse mail fait déja partie des données")
a = 1

if a == 0:
df.loc[55] = [54, new_mail, new_mdp]
print("Vous venez de créer votr compte")

df.to_csv("user_info.csv",sep=";",index=False)

print(df)

Azerban Azerban
MP
Niveau 15
05 mars 2021 à 15:47:58

Pas besoin d'utiliser une lib externe pour écrire dans un fichier csv, il y a le module csv dans la librairie standard de Python.

https://realpython.com/python-csv/#writing-csv-files-with-csv

DébutPage précedente
1
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : godrik, LGV
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

La vidéo du moment