Menu

Lire et écrire des CSV en Python

Messages postés
21
Date d'inscription
mardi 15 janvier 2019
Dernière intervention
6 février 2019
-
Bonjour,

'essaie de lire un fichier csv en python
mais pas seulement afficher mais du gestionnaire comme une table
J'ai trouvé beaucoup de vidéos qui lisent un fichier csv mais uniquement des chiffres côte à côte
J'ai trouvé une vidéo qui parle de Panda Panda et d'Anaconda et je n'ai pas compris la différence entre le python normal et les deux
et comment je peux afficher une table qui contient des valeurs extait depuis csv

Configuration: Windows / Chrome 71.0.3578.98
Afficher la suite 

Votre réponse

2 réponses

Messages postés
11860
Date d'inscription
mardi 1 février 2005
Statut
Modérateur
Dernière intervention
27 janvier 2019
2875
0
Merci
Pandas est une bibliothèque Python pour faire du big data.

Anaconda est une environnement qui simplifie l'installation des paquets Python, mais quie st incompatible avec votre Python classique. C'est pourquoi vous pouvez installer Pandas sur votre Python classique mais aussi Pandas sur Anaconda.

Pour le reste de votre question, il va falloir être plus précis sur ce que veut dire "mais pas seulement afficher mais du gestionnaire comme une table". Je comprends que vous ne voulez pas seulement lire mais aussi écrire votre CSV. Par contre le terme "table" est confus ici, ça veut dire quoi "comme une table" ? Parlez-vous d'une table relationnelle (utilisable avec SQL) ? Parlez-vous d'une fenêtre graphique qui vous permet d'éditer votre fichier CSV (ce que l'on appelle communément un tableur Microsoft Excel ou Libre Office Calc en fait) ?
salahoum
Messages postés
21
Date d'inscription
mardi 15 janvier 2019
Dernière intervention
6 février 2019
> Yoan
Messages postés
11860
Date d'inscription
mardi 1 février 2005
Statut
Modérateur
Dernière intervention
27 janvier 2019
-
probleme
salahoum
Messages postés
21
Date d'inscription
mardi 15 janvier 2019
Dernière intervention
6 février 2019
> Yoan
Messages postés
11860
Date d'inscription
mardi 1 février 2005
Statut
Modérateur
Dernière intervention
27 janvier 2019
-
il ne fonctionne pas
Yoan
Messages postés
11860
Date d'inscription
mardi 1 février 2005
Statut
Modérateur
Dernière intervention
27 janvier 2019
2875 > salahoum
Messages postés
21
Date d'inscription
mardi 15 janvier 2019
Dernière intervention
6 février 2019
-
Ça veut dire quoi "ne pas fonctionner" ? Avez-vous une erreur de syntaxe, ou est-ce que ça ne produit pas le résultat escompté ? Si oui lequel/laquelle ... ?

D'où vient cette fonction `casefoldjoin` ? Je n'ai jamais vu ça et je ne trouve aucune trace dans la documentation.
Utilisez-vous une version de python en 2.X ou en 3.X ? Ceci est inscrit dans le terminal au démarrage généralement, tout dépend le logiciel que vous utilisez.
salahoum
Messages postés
21
Date d'inscription
mardi 15 janvier 2019
Dernière intervention
6 février 2019
-

J'utilise 3.7
quent217
Messages postés
232
Date d'inscription
vendredi 25 septembre 2015
Dernière intervention
29 janvier 2019
68 -
Bonjour,
en python3, print devient une fonction et doit donc être utilisé avec des parenthèses :
print('\t\t '.join(row))

Pour ce qui est des 2 lignes après le print, il s'agit de ce que le programme doit affiché mais ne doivent pas être dans le code.
D'ailleurs, le code a été modifié par rapport à l'exemple de la documentation donc la sorite serait plûtot
Spam         Spam                Spam              Spam        Spam        Baked Beans
Spam         Lovely Spam         Wonderful         Spam

Et pour finir, je ne sais pas comment ça fonctionne avec python2 mais je viens de tester avec python3 et l'ouverture du fichier en binaire ne fonctionne pas. Il faut donc faire :
with open('eggs.csv', 'r') as csvfile:
Commenter la réponse de Yoan
Messages postés
21
Date d'inscription
mardi 15 janvier 2019
Dernière intervention
6 février 2019
0
Merci
j'ai expliqué mon problème mais l'idée n'est pas arrivée
je réexplique simplement
les vidéo dans YouTube ils lisent les donnéés depuis le fichier csv comme :

nom;age;numero;date;salah;22;1;26/01;ali;23;2;26/01;ranard;30;3;26/01

moi j'ai besoin de le afficher comme :

nom age numero date
salah 22 1 26/01
ali 23 2 26/01
ranard 30 3 26/01
quent217
Messages postés
232
Date d'inscription
vendredi 25 septembre 2015
Dernière intervention
29 janvier 2019
68 -
Bonjour,
Dans ton exemple, tu utilise le même séparateur pour les espaces et les retours à la ligne, il faut donc modifier ton exemple avec des séparateurs différents.
Ou alors il faut connaître le nombre de colonnes à l'avance pour faire ce que tu veux faire.
Dans ce cas tu peux faire quelque chose comme ça :
nbColumns = 4
with open("test.csv","r") as csvfile:
    items = csvfile.read().split(";")
    for i in range(0,len(items),nbColumns):
        print(' '.join(items[i:i+4]))
        # ou la ligne suivante pour avoir des colonnes alignées
        # print('\t\t '.join(items[i:i+4]))
salahoum
Messages postés
21
Date d'inscription
mardi 15 janvier 2019
Dernière intervention
6 février 2019
> quent217
Messages postés
232
Date d'inscription
vendredi 25 septembre 2015
Dernière intervention
29 janvier 2019
-
le problème est que mon fichier est contient 1447 lignes et 43 colonnes
Commenter la réponse de salahoum