Comment lire et écrire sur Google Sheets avec Python
Python est un excellent langage de programmation. La syntaxe peut sembler étrange et inhabituelle, mais il est facile à apprendre et à utiliser. Il fait fonctionner Minecraft Pi Edition Learn Python et Electronique avec Minecraft Pi Edition Learn Python et Electronique avec Minecraft Pi Edition Vous avez toujours voulu apprendre à coder mais vous ne saviez pas par où commencer? Apprenez à contrôler Minecraft sur le Raspberry Pi à l’aide de Python et de quelques appareils électroniques simples. Lire la suite, avec une multitude de sites Web et de projets de recherche universitaires.
Dans cet article, je vais vous montrer comment lire et écrire dans Google Sheets à l'aide de Python. Assurez-vous de lire nos raisons pour lesquelles la programmation Python n'est pas inutile 5 raisons pour lesquelles la programmation Python n'est pas inutile 5 raisons pour lesquelles la programmation Python n'est pas inutile Python - Vous l'aimez ou vous le détestez. Vous pouvez même basculer d'un bout à l'autre comme un pendule. Quoi qu'il en soit, Python est un langage sur lequel il est difficile d'être ambivalent. En savoir plus et nos cinq paramètres Google Sheets 5 Paramètres Google Sheets indispensables au travail d'équipe 5 Paramètres Google Sheets indispensables au travail d'équipe Google Sheets offre davantage de fonctionnalités que vous ne le pensez pour la saisie et le traitement collectifs de données. Nous vous présenterons les fonctions et fonctionnalités de Google Sheets essentielles pour les projets de groupe. Lisez plus qui sont essentiels pour le travail d'équipe. Ils fourniront des connaissances de base utiles. Si vous commencez tout juste votre aventure Python, ces 5 meilleurs sites Web pour apprendre Python Les 5 meilleurs sites Web pour apprendre la programmation Python Les 5 meilleurs sites Web pour apprendre la programmation Python Vous souhaitez apprendre la programmation Python? Voici les meilleurs moyens d'apprendre Python en ligne, dont beaucoup sont entièrement gratuits. Lire la suite sont un bon point de départ.
Configuration de Google
Avant de vous plonger dans le code, une configuration initiale est nécessaire sur Google Sheets..
Tout d'abord, créez vous-même une nouvelle feuille. Vous pouvez ignorer cette étape si vous en avez déjà une configurée. J'utilise une liste de voitures de rallye pour cet exemple:
Vous devez maintenant configurer vos options de partage. Vous aurez besoin de générer Identifiants signés, quelque chose qui semble plus difficile que ce n'est. Accédez à la console Google Developers et créez un nouveau projet (ou utilisez un projet existant):
Donnez à votre projet un nom approprié, puis cliquez sur créer:
Sous API Google Apps sélectionner Drive API:
Choisir Activer:
Maintenant, sélectionnez Lettres de créance dans le menu de gauche:
Cliquez sur la petite flèche sur le Créer des identifiants bouton:
Maintenant, sélectionnez Clé de compte de service:
Choisir Compte de service par défaut App Engine sous Compte de service et JSON comme le format:
Cliquez sur créer et vous devriez obtenir un .JSON téléchargement de fichier. Déplacez ceci dans votre répertoire de projet et renommez-le creds.json. Enfin, ouvrez le fichier et recherchez client_email. Cela devrait être le nom de votre projet à appspot.gserviceaccount.com. Partagez votre fiche Google avec cette adresse e-mail (En haut à droite > Partager > Entrer Email).
Voilà pour le côté Google Drive.
Configuration Python
Il existe deux versions principales de Python: 2.7 et 3.x. Je vais utiliser 2.7, mais peu importe ce que vous utilisez. Le wiki Python décompose les différences si cela vous intéresse. Vous souhaiterez peut-être installer un environnement virtuel. Cela sort du cadre de cet article, mais c'est une bonne pratique.
Si vous utilisez Microsoft Windows, vous devrez peut-être télécharger et installer Python. Mac OS est livré avec Python déjà installé. Comme j'utilise un Mac, ce projet sera créé en tant que tel. Vous devriez pouvoir suivre assez bien sur une machine Windows ou Linux. Assurez-vous de lire notre guide Hey Utilisateur Windows, Devriez-vous passer à Linux ou Mac? Hé utilisateur Windows, devriez-vous passer à Linux ou Mac? Avez-vous déjà envisagé de passer de Windows à Linux ou Mac? La réponse rapide: si vous êtes sous Windows, restez sous Windows et ne vous inquiétez pas de la mise à niveau pour l'instant. Voici pourquoi. Lisez plus pour savoir si vous devriez changer.
Tout d'abord, ouvrez un nouveau terminal. Vous devrez utiliser pip pour installer certains paquets Python. C'est un outil recommandé qui facilite grandement la gestion des packages. Il vient avec Python.
Vous devez installer un oauth2client. Oauth est un framework d'autorisation Web. Je ne discuterai pas des détails, mais il est nécessaire que tout fonctionne correctement et en toute sécurité. C'est facile à installer avec pip:
pip installer oauth2client
Vous devrez peut-être également installer PyOpenSSL, selon votre configuration:
pip installer PyOpenSSL
Vous devez maintenant installer Gspread d'Anton Burnashev sur GitHub. C'est une excellente bibliothèque écrite pour faciliter l'accès à Google Sheets en Python. Encore une fois, ceci est facile à installer avec pip:
pip installer gspread
Ouvrez maintenant votre éditeur de texte préféré (j'utilise Sublime Text 3). Créez un nouveau fichier Python et enregistrez-le dans le répertoire de votre projet sous le nom suivant: google_io.py. Voici le code de test:
print 'Bonjour le monde!'
Retournez à votre Terminal et accédez au répertoire de votre projet. Vous pouvez le faire à travers le CD commander. Vous pouvez utiliser ls pour lister les fichiers, et pwd pour montrer votre répertoire de travail.
Une fois dans votre répertoire de projet, vous pouvez exécuter votre script Python comme suit:
python google_io.py
Vous devriez maintenant voir Bonjour le monde! dans votre ligne de commande:
Maintenant que Python fonctionne correctement, allons de l'avant et configurons les bibliothèques. Supprimez le code hello world. Maintenant, importez Gspread et exécutez le code à nouveau:
importer gspread
Si les choses fonctionnent correctement, rien ne se passera. Si vous obtenez une erreur, peut-être en disant pas de module nommé X où X est le nom du module que vous avez tapé (Gspread), vérifiez et vérifiez que pip a correctement installé le module et que vous n'avez pas commis d'erreur typographique..
Voici le code pour vous aider à démarrer:
import json import gspread depuis oauth2client.client import SignedJwtAssertionCredentials json_key = json.load (open ('creds.json')) # informations d'identification json que vous avez téléchargées précédemment = = '' https://spreadsheets.google.com/feeds '] credentials = SignedJwtAssertionCredentials (json_key ['client_email'], json_key ['private_key'].. Encode (), scope) # obtenir un email et une clé de creds file = gspread.authorize (informations d'identification) # s'authentifier avec Google sheet = file.open ("MUO_Python_Sheet") ) .sheet1 # open sheet
Cela récupère simplement vos détails de la .JSON fichier, puis les utilise pour s’authentifier auprès de Google. Il ouvre ensuite une feuille appelée MUO_Python_Sheet. Vous devrez peut-être modifier le nom de votre feuille (à condition que vous l’ayez partagée correctement). Python est sensible à la casse, alors assurez-vous d'entrer ce code correctement.
En train de lire
Maintenant que tout est configuré, il est facile de lire ou d’écrire des données. Voici comment vous sélectionnez une plage de cellules (dans ce cas, toutes les cellules de voiture):
all_cells = sheet.range ('A1: C6') print all_cells
Voici à quoi ça ressemble:
Pas très sympa c'est ça? Python a vidé le contenu de l'objet sans tenir compte du formatage. Parce que cela est stocké dans le all_cells variable, il est accessible comme n'importe quel autre objet Python. Voici comment vous imprimez toutes les valeurs de cellule dans un format plus agréable:
pour cellule dans all_cells: print cell.value
Et cela ressemble à ceci:
Il est possible d'accéder aux cellules individuellement (bien que cela soit lent si vous le faites souvent):
A1 = sheet.acell ('A2'). Value # cette cellule contient "Ford"
Ou vous pouvez utiliser les coordonnées de la cellule:
coord = sheet.cell (3, 0) .value
Il est facile d'obtenir toutes les valeurs d'une ligne:
row = sheet.row_values (1) # première rangée
Ou vous pouvez obtenir une colonne entière. Cela obtient le Modèle rangée:
col = sheet.col_values (2) # modèles
N'oubliez pas que ces deux méthodes ne savent pas combien de données vous avez. Si vous avez seulement trois lignes, plusieurs extra vide les cellules seront retournées. Il est presque toujours préférable d'accéder à un bloc de cellules prédéfini.
L'écriture
Il est tout aussi facile d'écrire dans la feuille et vous pouvez utiliser des noms de cellules ou des coordonnées, comme si vous lisiez:
sheet.update_acell ('C2', 'Bleu') sheet.update_cell (2, 3, 'bleu')
La page de projet sur GitHub contient de nombreux autres exemples..
Si vous écrivez sur une feuille importante, vous voudrez peut-être envisager une sécurité cellule. Stocker une valeur dans une certaine cellule (j'utilise “Ne pas supprimer ceci”), puis lisez cette cellule en premier. Si le contenu a changé, des colonnes ont été ajoutées ou supprimées dans votre feuille. Ne continuez donc pas à écrire! Voici comment cela pourrait être réalisé:
if sheet.acell ('B3')! = 'SAFETY': # quelque chose a changé dans la feuille, NE PAS PROCÉDER à une exception. Exception ("Oh mon Dieu, je ne suis pas prêt pour cela."): # continuez votre écriture sheet.update_acell ('C2', 'Bleu')
C'est une bonne pratique. Cela garantit que votre script ne peut pas écrire accidentellement dans la mauvaise colonne. Ce n'est pas un substitut pour des sauvegardes appropriées (vous avez des sauvegardes, non?).
Maintenant que vous connaissez les bases, allez faire quelque chose de cool! Apprenez à utiliser cron Comment planifier des tâches sous Linux avec Cron et Crontab Comment planifier des tâches sous Linux avec Cron et Crontab La possibilité d'automatiser des tâches est l'une de ces technologies futuristes déjà présentes. Chaque utilisateur Linux peut tirer parti des tâches du système et du système de planification, grâce à cron, un service en arrière-plan facile à utiliser. Lisez Plus pour planifier des tâches sous Linux (ou recherchez une alternative à Windows. Comment exécuter des tâches Cron de style Linux sous Windows Comment exécuter des tâches Cron de style Linux sous Windows, en savoir plus). Peut-être pourriez-vous alimenter un cadre photo ShowerThoughts et EarthPorn: créez un cadre photo Raspberry Pi inspirant ShowerThoughts et EarthPorn: réalisez un cadre photo Raspberry Pi inspirant En savoir plus ou créez un tableau de bord du bureau - c'est ce que j'ai fait!
Avez-vous déjà interagi avec Google Sheets? Faites-nous savoir vos expériences dans les commentaires ci-dessous!
En savoir plus sur: Google Drive, Google Sheets, Python.