Lire et écrire des CSV en Python

salahoum Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   -  
salahoum Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

2 réponses

Yoan Messages postés 11795 Date d'inscription   Statut Modérateur Dernière intervention   2 331
 
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) ?
0
salahoum Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
Dans plusieurs video ils affichent un fichier csv dans python comme
Nombre;date;pays;salaire;2;01/02;france;1394;3;01/03;france;2873
Mon but est affiche dqns python comme tableau normale
Nombre date pays salaire
2. 01/02. France 3453
0
Yoan Messages postés 11795 Date d'inscription   Statut Modérateur Dernière intervention   2 331 > salahoum Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
Mais afficher où ?
Dans une fenêtre graphique ? Dans un terminal en ligne de commande ?
0
salahoum Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   > Yoan Messages postés 11795 Date d'inscription   Statut Modérateur Dernière intervention  
 
je suis débutant donc je sais meme pas la différence entre elles
en plus j'ai pas encore choisi seulement je cherche les posibilité
0
Yoan Messages postés 11795 Date d'inscription   Statut Modérateur Dernière intervention   2 331
 
En reprenant l'exemple qui est donné dans la documentation https://docs.python.org/2/library/csv.html vous devriez arriver à faire ce que vous souhaitez en ligne de commande.

Le morceau de code de la documentation affiche chaque ligne du CSV une à une séparées par des virugles. Pour aligner le texte en colonnes plutôt que de les séparer par des virgules, vous pouvez remplacer la virgule par 2 tabulations qui s'écrivent "\t\t" en Python, ce qui donne quelque chose du genre :
>>> import csv
>>> with open('eggs.csv', 'rb') as csvfile:
...     spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
...     for row in spamreader:
...         print '\t\t '.join(row)
Spam, Spam, Spam, Spam, Spam, Baked Beans
Spam, Lovely Spam, Wonderful Spam


"join()" est une fonction magique qui prend chaque élément de la liste que vous lui passez en paramètre et les met les uns à la suite des autres en les séparant par le séparateur demandé, ici nous avons demandé le séparateur '\t\t'.
0
salahoum Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   > Yoan Messages postés 11795 Date d'inscription   Statut Modérateur Dernière intervention  
 
probleme
0
salahoum Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
quent217 Messages postés 420 Date d'inscription   Statut Membre Dernière intervention   347
 
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]))
0
salahoum Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   > quent217 Messages postés 420 Date d'inscription   Statut Membre Dernière intervention  
 
le problème est que mon fichier est contient 1447 lignes et 43 colonnes
0