Liste avec fichier csv

Fermé
m_722 - 30 avril 2020 à 22:23
Furansujean Messages postés 58 Date d'inscription lundi 1 juillet 2019 Statut Membre Dernière intervention 12 septembre 2022 - 4 mai 2020 à 23:13
Bonjour,

Je suis en première et je bloque sur un exercice de python. Je doit compléter l'algorithme suivant afin qu'il donne dans la console une liste ( un tableau dans un tableau ) dont les informations viennent d' un fichier csv. J'ai compris que je dois utiliser un float afin de convertir et un "liste1.append(champs)". Mais je ne sais pas comment les mettre et il me manque d'autres informations. Le fichiers csv contient trois colonnes.
merci d'avance,

def construction (nom): # Construction de la liste de la collection

liste1=[]
with open(nom, encoding='utf8') as f:
entete = f.readline() # On purge la première ligne du fichier : l'en-tête.
for ligne in f:
champs = ligne.split(",") # Un tableau
print(champs)
return(liste1)
...




liste=construction("iris.csv")

Configuration: Windows / Edge 18.18362
A voir également:

3 réponses

Furansujean Messages postés 58 Date d'inscription lundi 1 juillet 2019 Statut Membre Dernière intervention 12 septembre 2022 5
Modifié le 1 mai 2020 à 00:09
Bonsoir,

Essaie d'utiliser les balises de code pour avoir un affichage adapté pour le code.
Je reprends donc ton code, remis en forme (ne pas oublier l'importance de l'indentation en Python), tel qu'il apparaîtrait dans un fichier .py :
liste1=[]
with open(nom, encoding='utf8') as f:
    entete = f.readline() # On purge la première ligne du fichier : l'en-tête.
    for ligne in f:
        champs = ligne.split(",") # Un tableau
        print(champs)
return(liste1)

liste=construction("iris.csv") 


1. Concernant l'utilisation de
float
, as-tu une idée de la variable pour laquelle on veut passer en type
float
?
Tu peux essayer sur un exemple pour mieux comprendre ce qu'il se passe.

2. Ce que tu veux, si j'ai bien compris, c'est une liste engloblant des listes qui contiennent les champs d'une ligne du fichier.
Par exemple : une ligne ressemblant à
12,0.5,14.3
dans ton fichier csv deviendra :
[12.0,0.5,14.3]
. Il faut ensuite que tu la rajoutes à la liste englobante.

N'hésite pas si tu as des questions.
0
Bonsoir,
Je pense qu'il faudrait que je fasse le float avec la variable '' champs''. Mais pour le reste oui c' est bien cela et donc je fais' ' liste1. append(champs)' ' afin de rajouter ? Je n' ai pas tout compris...
Merci d'avance de votre réponse
0
Furansujean Messages postés 58 Date d'inscription lundi 1 juillet 2019 Statut Membre Dernière intervention 12 septembre 2022 5
2 mai 2020 à 16:25
Bonjour,

Prenons l'exemple que j'ai donné.
Supposons que ta première ligne ressemble à :
12,0.5,14.3
.
Lorsque tu entres la première fois dans la boucle, la variable
ligne
vaut
"12,0.5,14.3"
.

Que vaut ensuite la variable
champs
suite à l'instruction
champs = ligne.split(",")
?
Comment peux-tu faire pour changer chaque élément de
champs
en
float
?

Effectivement ensuite tu peux utiliser la fonction
append
pour que ta liste englobante
liste1
passe de
[]
à
[[12,0.5,14.3]]
à la fin du premier tour de boucle.
0
Furansujean Messages postés 58 Date d'inscription lundi 1 juillet 2019 Statut Membre Dernière intervention 12 septembre 2022 5
4 mai 2020 à 23:13
Bonsoir,
je constate que tu as ouvert un autre topic sur le même sujet , ici : https://forums.commentcamarche.net/forum/affich-36624020-float-python
Si tu n'as plus besoin de mon aide, peux-tu fermer ce sujet ?
Merci.
0