Lire et écrire des CSV en Python

Fermé
salahoum Messages postés 21 Date d'inscription mardi 15 janvier 2019 Statut Membre Dernière intervention 4 mars 2019 - Modifié le 22 janv. 2019 à 22:40
salahoum Messages postés 21 Date d'inscription mardi 15 janvier 2019 Statut Membre Dernière intervention 4 mars 2019 - 5 févr. 2019 à 11:28
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 mardi 1 février 2005 Statut Modérateur Dernière intervention 10 décembre 2023 2 327
22 janv. 2019 à 22:39
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 mardi 15 janvier 2019 Statut Membre Dernière intervention 4 mars 2019
23 janv. 2019 à 00:26
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 mardi 1 février 2005 Statut Modérateur Dernière intervention 10 décembre 2023 2 327 > salahoum Messages postés 21 Date d'inscription mardi 15 janvier 2019 Statut Membre Dernière intervention 4 mars 2019
23 janv. 2019 à 01:10
Mais afficher où ?
Dans une fenêtre graphique ? Dans un terminal en ligne de commande ?
0
salahoum Messages postés 21 Date d'inscription mardi 15 janvier 2019 Statut Membre Dernière intervention 4 mars 2019 > Yoan Messages postés 11795 Date d'inscription mardi 1 février 2005 Statut Modérateur Dernière intervention 10 décembre 2023
23 janv. 2019 à 08:37
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 mardi 1 février 2005 Statut Modérateur Dernière intervention 10 décembre 2023 2 327
24 janv. 2019 à 02:06
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 mardi 15 janvier 2019 Statut Membre Dernière intervention 4 mars 2019 > Yoan Messages postés 11795 Date d'inscription mardi 1 février 2005 Statut Modérateur Dernière intervention 10 décembre 2023
24 janv. 2019 à 22:53
probleme
0
salahoum Messages postés 21 Date d'inscription mardi 15 janvier 2019 Statut Membre Dernière intervention 4 mars 2019
27 janv. 2019 à 19:56
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 421 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 1 mars 2024 344
29 janv. 2019 à 20:53
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 mardi 15 janvier 2019 Statut Membre Dernière intervention 4 mars 2019 > quent217 Messages postés 421 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 1 mars 2024
5 févr. 2019 à 11:28
le problème est que mon fichier est contient 1447 lignes et 43 colonnes
0