IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Manipuler un fichier via Python


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Janvier 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 20
    Points : 6
    Points
    6
    Par défaut Manipuler un fichier via Python
    Bonjour a tous,

    Je souhaite manipuler un fichier avec Python.

    Exemple (fichier d'entrer):

    Date;Machine;CPU;CODE;MOYENNE
    27/09/2018 03h30;AAA1;2.5;AB12;13
    27/09/2018 03h31;AAA2;2.1;AB12;13
    27/09/2018 03h32;AAA3;2.2;AB12;13

    Je souhaite par exemple modifier les colonnes, ajouter des colonnes et modifier le format de la date:
    Résultat (fichier de sortie ) :

    Date;GROUPE;Machine;MOYENNE;CODE;CPU
    2018-09-27 03:30;AAA;AAA1;13;AB12;2.5
    2018-09-27 03:31;AAA;AAA2;13;AB12;2.1
    2018-09-27 03:32;AAA;AAA3;13;AB12;2.2

    J'ai ajouté la colonne "GROUPE" avec la valeur "AAA" pour toutes les lignes et j'ai changé les places des autres colonnes.

    Pouvez vous m'aider SVP
    Je vous remercie d'avance

    Merci beaucoup

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par mckgh Voir le message
    Pouvez vous m'aider SVP
    Votre fichier (un fichier CSV) est une suite de lignes où les différents éléments de chaque lignes sont séparés par ";". Mais le programmeur Python va voir cela comme si c'était une liste de listes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >>> data = '''Date;Machine;CPU;CODE;MOYENNE
    ... 27/09/2018 03h30;AAA1;2.5;AB12;13
    ... 27/09/2018 03h31;AAA2;2.1;AB12;13
    ... 27/09/2018 03h32;AAA3;2.2;AB12;13'''
    >>> for line in data.splitlines(): print (line.split(';'))
    ...
    ['Date', 'Machine', 'CPU', 'CODE', 'MOYENNE']
    ['27/09/2018 03h30', 'AAA1', '2.5', 'AB12', '13']
    ['27/09/2018 03h31', 'AAA2', '2.1', 'AB12', '13']
    ['27/09/2018 03h32', 'AAA3', '2.2', 'AB12', '13']
    >>>
    Donc votre problème se ramène à ajouter un item comme 2ème élément puis reconstruire la chaîne de caractères et l'écrire dans un nouveau fichier. Normalement, vous avez ouvert un tuto. avant de poster et être capable de réaliser tout ou partie de ces opérations (de bases sur les listes et les chaînes de caractères)... En tous cas, si vous bloquez quelque part, vous devriez quand même avoir un bout de code à présenter et expliquer ce qui vous bloque.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Janvier 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    Hello wiztricks

    Merci pour votre réponse
    Je débute vraiment sur python.
    Je travail d'habitude sur talend et je peut le faire en 2 scd, d’ailleurs si vous avez des questions sur Talend n'hésitez pas.
    Donc si vous pouvez juste m'aider sur le début d'un algorithme qui split les colonnes et les insert dans des variable pour pouvoir après les manipuler (changer de position, changer de format de date et ajouter une colonne )

    Voila

  4. #4
    Membre actif
    Profil pro
    Loisir
    Inscrit en
    Novembre 2011
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Loisir

    Informations forums :
    Inscription : Novembre 2011
    Messages : 159
    Points : 284
    Points
    284
    Par défaut
    Bonjour,

    je proposerais bien d'utiliser le module pandas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    import pandas as pd
     
    # lire le csv
    data = pd.read_csv('cheminVersLeFichier/test.csv', sep=';')
    data
     
    # formater la date
    data['Date'] = pd.to_datetime(data['Date'])
    data['Date'] = data['Date'].dt.strftime('%Y-%m-%d %H:%M')
    data
     
    # ajout et calcul de la colonne GROUPE à partir de Machine
    data['GROUPE'] = data.apply(lambda row: row.Machine[:3], axis=1)
     
    # réorganiser les colonnes
    data = data[['Date', 'GROUPE', 'Machine', 'MOYENNE', 'CODE', 'CPU']]
     
    # écrire le csv
    data.to_csv('cheminVersLeFichier/test2.csv', index = False, sep=';', encoding='utf-8')

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Janvier 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    En tous cas, si vous bloquez quelque part, vous devriez quand même avoir un bout de code à présenter et expliquer ce qui vous bloque.

    - W
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    import csv
    with open('monfichier.csv') as csvfile:
        readCSV = csv.reader(csvfile, delimiter=';')
        for row in readCSV:	   
           	print(row[2]+" "+row[3],";",row[0],";",row[1],";",row[4])
    Voici un bout de code, j'ai réussi a afficher les colonnes autrement.
    Mais comment on peut par exemple mettre les row[1,2...] dans des variables afin de pouvoir les modifier, changer de format, coller par exemple deux colonne dans une seule colonne exp (jai une colonne 'date' "27/09/2018" et une autre 'heure' "00:12" ==> former une seule colonne 'dateHeure' avec un nouveau format etc..) et ensuite tout récrire dans un autre fichier csv avec des autres entête ...

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Janvier 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Supernul Voir le message
    Bonjour,

    je proposerais bien d'utiliser le module pandas :
    Merci beaucoup Superpasnul

    mais j'ai ce message : ModuleNotFoundError: No module named 'pandas'
    et vu que c'est mon premier programme Python
    ou je peux le trouver ce module ?

    Merci beaucoup

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par mckgh Voir le message
    Mais comment on peut par exemple mettre les row[1,2...] dans des variables afin de pouvoir les modifier, changer de format, coller par exemple deux colonne dans une seule colonne exp
    La réponse est "oui" et comme ce sont des opérations de base sur les chaînes de caractères (et les listes) vous auriez déjà la réponse si vous aviez pris le temps d'ouvrir un tuto. avant de poster.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  8. #8
    Membre actif
    Profil pro
    Loisir
    Inscrit en
    Novembre 2011
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Loisir

    Informations forums :
    Inscription : Novembre 2011
    Messages : 159
    Points : 284
    Points
    284
    Par défaut
    Pandas peut s'installer avec pip.
    Pour te donner plus d'information, il faut qu'on connaisse ton système et ta version de Python. Pour les personnes qui débutent et qui ne veulent pas se prendre la tête avec la gestion du système, je recommanderais d'installer la suite Anaconda, surtout si tu es sous Windows.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Janvier 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    La réponse est "oui" et comme ce sont des opérations de base sur les chaînes de caractères (et les listes) vous auriez déjà la réponse si vous aviez pris le temps d'ouvrir un tuto. avant de poster.

    - W
    Bonjour,

    Avez vous des liens SVP? parce que honnêtement j'ai cherché sans succès.

    Merci

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par mckgh Voir le message
    Avez vous des liens SVP? parce que honnêtement j'ai cherché sans succès.
    Si vous savez déjà programmer le tuto. qui vient avec Python est un bon début. Sur DVP, vous avez toute une page qui liste les différents cours disponibles ici.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  11. #11
    Membre actif
    Profil pro
    Loisir
    Inscrit en
    Novembre 2011
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Loisir

    Informations forums :
    Inscription : Novembre 2011
    Messages : 159
    Points : 284
    Points
    284
    Par défaut
    Bonjour,

    presque tous les tutos de base du site abordent le sujet. Regardez notamment le Swinnen.
    Une recherche dans votre moteur de recherche préféré avec des mots clés comme "python manipuler chaines caractères" ou "python fusionner chaines caractères" (le terme approprié est concaténer) ou "python manipuler listes" vous donnent plus liens utiles.

Discussions similaires

  1. [XL-2007] Manipulation de fichier texte d'extension personnalisée via VBA
    Par GOLDINGMAROC dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/12/2013, 12h16
  2. Manipulation de fichier via FTP
    Par Hellooow dans le forum Langage
    Réponses: 7
    Dernier message: 06/12/2010, 15h17
  3. bibliothèque python pour manipulation de fichiers RAW (DNG ou NEF Nikon)
    Par methos1435 dans le forum Bibliothèques tierces
    Réponses: 0
    Dernier message: 10/09/2009, 21h00
  4. recuperer des fichier via le net, et les manipuler en C
    Par sliders_alpha dans le forum Débuter
    Réponses: 12
    Dernier message: 13/09/2008, 12h06
  5. Manipuler un fichier excel avec python
    Par dipajero dans le forum Général Python
    Réponses: 4
    Dernier message: 09/02/2006, 23h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo