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

Réseau/Web Python Discussion :

Insérer les données d'un .csv existant dans une feuille de calcul Google Sheet existante


Sujet :

Réseau/Web Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    En recherche
    Inscrit en
    Octobre 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : En recherche
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2020
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Insérer les données d'un .csv existant dans une feuille de calcul Google Sheet existante
    Bonjour à tous,

    J'espère que ce post est au bon endroit :)

    Je touche à la fin de mon but qui est de télécharger automatiquement des .csv disponibles sur un site protégé par un mot de passe, de combiner tous ces .csv en un seul puis de feed automatiquement une feuille de calcul Google Sheet avec les infos dans mon .csv combiné.

    J'ai réussi à tout combiner dans un seul .csv et d'un autre côté à me connecter à l'API Google Sheet pour y insérer les lignes que je veux (en tapant les mots que je souhaite insérer).

    En revanche, je n'arrive pas à faire en sorte que mon programme lise le .csv combiné puis le rebalance automatiquement sur Google Sheet :(

    Est-ce que quelqu'un à une idée sur comment faire ? je suis sûr que c'est simple, j'ai du regarder 40 vidéos youtubes mais c'est toujours des tutos pour ajouter des chiffres tapés à la mains sur un Gsheet

    Voici mon code pour combiner tous les csv. puis lire uniquement les datas qui m'intéressent (à noter que le .csv est toujours en format "une seule colonne"):

    ********************************
    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
    20
    21
    22
    23
     
     
    import os
    import glob
    import pandas as pd
    import csv
     
    os.chdir("/Users/paul/Downloads")
     
    extension = 'csv'
    all_filenames = [i for i in glob.glob('*.{}'.format(extension))]
     
    #combine all files in the list
    combined_csv = pd.concat([pd.read_csv(f) for f in all_filenames ])
    #export to csv
    combined_csv.to_csv("combined_csv.csv", index=False, encoding='utf-8-sig')
     
     
    with open('combined_csv.csv', encoding='utf8') as csv_file:
        tracking_numb = csv.DictReader(csv_file)
        print(tracking_numb)
        for tracking_numb in tracking_numb:
            print(tracking_numb['\ufeff\ufeffWaybill Number'], tracking_numb['Shipment Date'],tracking_numb['Recipient Country'], tracking_numb['Delivery Option'])
    ********************************

    Voici mon code si je veux rentrer ("I NEED HELP") sur ma google sheet :


    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
    20
     
    import gspread
    from oauth2client.service_account import ServiceAccountCredentials
     
    scope = ["https://spreadsheets.google.com/feeds",'https://www.googleapis.com/auth/spreadsheets',"https://www.googleapis.com/auth/drive.file","https://www.googleapis.com/auth/drive"]
     
    creds = ServiceAccountCredentials.from_json_keyfile_name("creds.json", scope)
     
    client = gspread.authorize(creds)
     
    sheet = client.open("Python").sheet1
     
    data = sheet.get_all_records()
     
    row = sheet.row_values(3)
    col = sheet.col_values(3)
    cell = sheet.cell(1,2).value
     
    insertRow = ["I", "NEED", "HELP"]
    sheet.insert_row(insertRow, 2)
    ********************************

    Je suis sûr d'être près du but !!



    <config>Macintosh / Chrome 86.0.4240.111</config>

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Normalement vous pouvez downloader et uploader des fichiers sans vous préoccuper de leur type.

    Google Sheet est juste une API pour les utiliser en tant que "tableau" (des lignes et des colonnes).

    C'est un peu comme EXCEL: un fichier XLS peut être déplacé ou vous voulez comme n'importe quel autre fichier. Par contre, ajouter une ligne au fichier sans lancer Excel n'est possible que pour des formats de fichiers particuliers.

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

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    En recherche
    Inscrit en
    Octobre 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : En recherche
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2020
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Update : je suis plus près de but que jamais...

    J'ai combiné mes deux codes et réussi à faire en sorte que mon google sheet s'update avec la liste (print) du fichier .csv

    En revanche le google sheet ne s'update qu'avec la toute dernière donnée de la liste et non toutes les données :'(

    Quelqu'un sait comment modifier ce code pour faire en sorte que pour chaque ligne de mon .csv il insère une nouvelle row ?

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    import os
    import glob
    import pandas as pd
    import csv
     
    os.chdir("/Users/paul/Downloads")
     
    extension = 'csv'
    all_filenames = [i for i in glob.glob('*.{}'.format(extension))]
     
    #combine all files in the list
    combined_csv = pd.concat([pd.read_csv(f) for f in all_filenames ])
    #export to csv
    combined_csv.to_csv("combined_csv.csv", index=False, encoding='utf-8-sig')
     
     
    with open('combined_csv.csv', encoding='utf8') as csv_file:
        tracking_numb = csv.DictReader(csv_file)
        print(tracking_numb)
        for tracking_numb in tracking_numb:
            print(tracking_numb['\ufeff\ufeffWaybill Number'], tracking_numb['Shipment Date'],tracking_numb['Recipient Country'], tracking_numb['Delivery Option'])
     
    import gspread
    from oauth2client.service_account import ServiceAccountCredentials
     
    scope = ["https://spreadsheets.google.com/feeds",'https://www.googleapis.com/auth/spreadsheets',"https://www.googleapis.com/auth/drive.file","https://www.googleapis.com/auth/drive"]
     
    creds = ServiceAccountCredentials.from_json_keyfile_name("/Users/paul/PycharmProjects/pythonProject2/creds.json", scope)
     
    client = gspread.authorize(creds)
     
    sheet = client.open("Python").sheet1
     
    data = sheet.get_all_records()
     
    insertRow = [tracking_numb['\ufeff\ufeffWaybill Number'], tracking_numb['Shipment Date'],tracking_numb['Recipient Country'], tracking_numb['Delivery Option']]
    sheet.insert_row(insertRow, 2)

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/05/2009, 09h38
  2. Réponses: 3
    Dernier message: 27/07/2007, 13h06
  3. Réponses: 3
    Dernier message: 21/06/2007, 01h10
  4. Insérer des données d'un tableau php dans une table mysql
    Par tom43 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 02/08/2006, 09h38
  5. Réponses: 5
    Dernier message: 06/11/2005, 11h26

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