Hoe te lezen en schrijven naar Google-bladen met Python
Python is een uitstekende programmeertaal. De syntaxis kan vreemd en ongebruikelijk lijken, maar het is gemakkelijk te leren en te gebruiken. Het voedt Minecraft Pi-editie Leer Python en elektronica met Minecraft Pi-editie Leer Python en elektronica met Minecraft Pi-editie Heb je altijd al willen leren programmeren, maar wist je niet waar je moest beginnen? Leer hoe je Minecraft op de Raspberry Pi kunt bedienen met behulp van Python en enkele eenvoudige elektronica. Lees meer, samen met een keur aan websites en academische onderzoeksprojecten.
In dit artikel laat ik je zien hoe je met Python naar Google Spreadsheets kunt lezen en schrijven. Zorg ervoor dat je onze redenen leest waarom het programmeren van Python niet zinloos is 5 Redenen waarom Python programmeren niet nutteloos is 5 Redenen waarom Python programmeren geen zin heeft Python - Je houdt er wel van of je haat het. Je zou zelfs als een slinger van het ene uiteinde naar het andere kunnen zwaaien. Ongeacht, Python is een taal waar het moeilijk is om ambivalent te zijn. Lees meer en onze vijf Google Spreadsheets-instellingen 5 Google Spreadsheets Instellingen essentieel voor teamwerk 5 Google Spreadsheets Instellingen essentieel voor teamwerk Google Spreadsheets heeft meer functies om collectieve gegevensinvoer en -verwerking te ondersteunen dan u misschien denkt. We laten u kennismaken met de functies en functies van Google Spreadsheets die essentieel zijn voor groepsprojecten. Lees meer die essentieel zijn voor teamwork. Ze bieden nuttige achtergrondkennis. Als je net begint aan je Python-reis, zijn deze 5 beste websites om Python te leren De 5 beste websites om Python te leren programmeren De 5 beste websites om Python-programmering te leren Wil je Python-programmering leren? Dit zijn de beste manieren om Python online te leren, waarvan vele volledig gratis zijn. Meer lezen is een goed startpunt.
Google Setup
Voordat u naar de code springt, is er enige initiële configuratie nodig op de Google Spreadsheets.
Maak eerst een nieuw blad. U kunt deze stap overslaan als u er al een hebt ingesteld. Ik gebruik een lijst met rallyauto's voor dit voorbeeld:
Nu moet je je deelopties instellen. Je moet genereren Getekende legitimatiegegevens, iets dat moeilijker klinkt dan het is. Navigeer naar de Google Developers Console en maak een nieuw project (of gebruik een bestaand project):
Geef uw project een geschikte naam en klik vervolgens op creëren:
Onder Google Apps API's kiezen Drive-API:
Kiezen in staat stellen:
Selecteer nu Geloofsbrieven in het linkermenu:
Klik op de kleine pijl op de Aanmeldingsgegevens maken knop:
Selecteer nu Serviceaccountsleutel:
Kiezen App Engine standaard serviceaccount onder Serviceaccount en JSON als het formaat:
Klik op Maken en u zou een moeten krijgen .json bestand download. Verplaats dit naar uw projectdirectory en hernoem het creds.json. Open ten slotte het bestand en zoek naar client_email. Dit zou de naam van je project moeten zijn bij appspot.gserviceaccount.com. Deel uw Google-spreadsheet met dit e-mailadres (Rechtsboven > Delen > Voer email in).
Dat is het voor de Google Drive-kant.
Python-installatie
Er zijn twee Python-hoofdversies: 2.7 en 3.x. Ik gebruik 2.7, maar het maakt niet echt uit wat je gebruikt. De Python-wiki splitst de verschillen op als je geïnteresseerd bent. Mogelijk wilt u een virtuele omgeving installeren. Dat valt buiten het bestek van dit artikel, maar goede praktijk.
Als u Microsoft Windows gebruikt, moet u mogelijk Python downloaden en installeren. Mac OS wordt geleverd met Python al geïnstalleerd. Aangezien ik een Mac gebruik, zal dit project als zodanig worden gemaakt. Je zou redelijk goed moeten kunnen volgen op een Windows- of Linux-machine. Zorg ervoor dat je onze gids leest Hey Windows-gebruiker, moet je overschakelen naar Linux of Mac? Hallo Windows-gebruiker, moet je overschakelen naar Linux of Mac? Heb je ooit overwogen om van Windows naar Linux of Mac over te schakelen? Het snelle antwoord: als u Windows gebruikt, kunt u Windows blijven gebruiken en hoeft u zich nog geen zorgen te maken over een upgrade. Dit is waarom. Lees meer over of u moet overschakelen.
Open eerst een nieuwe terminal. U moet pip gebruiken om sommige Python-pakketten te installeren. Dit is een aanbevelingstool die het heel gemakkelijk maakt om pakketten te beheren. Het komt met Python.
U moet een oauth2client installeren. Oauth is een webautorisatiekader. Ik zal het niet over de details ervan hebben, maar het is noodzakelijk dat alles correct en veilig werkt. Het is eenvoudig te installeren met behulp van pip:
pip installeer oauth2client
Mogelijk moet u PyOpenSSL ook installeren, afhankelijk van uw opstelling:
installeer PyOpenSSL
Nu moet je Gspread van Anton Burnashev op GitHub installeren. Dit is een uitstekende bibliotheek die is geschreven om gemakkelijk toegang te krijgen tot Google Spreadsheets in Python. Nogmaals, dit is eenvoudig te installeren met behulp van pip:
pip installeer gspread
Open nu je favoriete teksteditor (ik gebruik Sublime Text 3). Maak een nieuw Python-bestand en sla het op in uw projectmap als google_io.py. Hier is de testcode:
print 'Hallo, wereld!'
Ga terug naar jouw Terminal en navigeer naar uw projectdirectory. Je kunt dit doen via de CD commando. Je kunt gebruiken ls om bestanden weer te geven, en pwd om uw werkdirectory te tonen.
Eenmaal in uw projectdirectory kunt u uw Python-script als volgt uitvoeren:
python google_io.py
Je zou nu moeten zien Hallo Wereld! in uw opdrachtregel:
Nu Python correct werkt, laten we doorgaan en de bibliotheken instellen. Verwijder de hello wereldcode. Importeer nu Gspread en voer de code opnieuw uit:
importeer gspread
Als de dingen correct werken, gebeurt er niets. Als u een foutmelding krijgt, misschien als u zegt geen module met de naam X waarbij X de naam is van de module die je hebt getypt (Gspread) go en dubbel hebt gecontroleerd of pip de module correct heeft geïnstalleerd en dat je geen typografische fout hebt gemaakt.
Hier is de code om mee te beginnen:
import json import gspread van oauth2client.client import SignedJwtAssertionCredentials json_key = json.load (open ('creds.json')) # json inloggegevens die u eerder heeft gedownload scope = ['https://spreadsheets.google.com/feeds'] credentials = SignedJwtAssertionCredentials (json_key ['client_email'], json_key ['private_key']. Encode (), scope) # krijg email en sleutel van creds file = gspread.authorize (credentials) # authenticate with Google sheet = file.open ("MUO_Python_Sheet" ) .sheet1 # open blad
Dit haalt eenvoudig uw gegevens uit de .json bestand en gebruikt deze vervolgens om te verifiëren met Google. Vervolgens wordt een blad geopend met de naam MUO_Python_Sheet. Mogelijk moet u dit wijzigen naar de naam van uw blad (mits u het correct hebt gedeeld). Python is hoofdlettergevoelig, dus zorg ervoor dat u deze code correct invoert.
Lezing
Nu alles is ingesteld, is het triviaal om gegevens te lezen of te schrijven. Zo selecteer je een celbereik (in dit geval alle cellen van de auto):
all_cells = sheet.range ('A1: C6') print all_cellen
Dit is hoe dat eruit ziet:
Niet erg leuk is het? Python heeft de inhoud van het object gedumpt, zonder rekening te houden met de indeling. Omdat dit wordt opgeslagen in de all_cells variabele, deze is toegankelijk zoals elk ander Python-object. U drukt als volgt alle celwaarden in een mooiere indeling af:
voor cel in all_cells: print cell.value
En dat ziet er zo uit:
Het is mogelijk om cellen individueel te benaderen (hoewel dit langzaam is als je het vaak doet):
A1 = sheet.acell ('A2'). Waarde # deze cel bevat "Ford"
Of u kunt de celcoördinaten gebruiken:
coord = sheet.cell (3, 0) .waarde
Het is gemakkelijk om alle waarden voor een rij te krijgen:
row = sheet.row_values (1) # eerste rij
Of je kunt een hele kolom krijgen. Dit krijgt de Model rij:
col = sheet.col_values (2) # modellen
Houd er rekening mee dat deze twee methoden niet weten hoeveel gegevens je hebt. Als je maar drie rijen hebt, meerdere extra leeg cellen worden geretourneerd. Het is bijna altijd beter om toegang te krijgen tot een vooraf gedefinieerd cellenblok.
schrift
Het is net zo gemakkelijk om terug te schrijven naar het blad en u kunt de celnamen of coördinaten gebruiken, net als bij het lezen van:
sheet.update_acell ('C2', 'Blue') sheet.update_cell (2, 3, 'Blue')
De projectpagina op GitHub heeft nog veel meer voorbeelden.
Als u naar een belangrijk blad schrijft, wilt u misschien een a overwegen veiligheid cel. Bewaar een waarde in een bepaalde cel (gebruik ik “Verwijder dit niet”) en lees vervolgens die cel eerst. Als de inhoud is gewijzigd, zijn er kolommen toegevoegd of verwijderd in uw blad, dus ga niet verder met schrijven! Hier is hoe dat kan worden bereikt:
if sheet.acell ('B3')! = 'SAFETY': # er is iets veranderd in het blad, GA NIET VERHOGEN raise Uitzondering ("Oh My, ik ben hier niet klaar voor.") anders: # ga door met je schrijven sheet.update_acell ( 'C2', 'Blue')
Dit is een goede gewoonte. Het zorgt ervoor dat uw script niet per ongeluk in de verkeerde kolom kan schrijven. Het is geen vervanging voor goede back-ups (u hebt wel back-ups, toch?).
Nu je de basis kent, ga en maak iets leuks! Leer hoe u cron gebruikt Hoe taken plannen in Linux met Cron en Crontab Hoe taken plannen in Linux met Cron en Crontab De mogelijkheid om taken te automatiseren is een van die futuristische technologieën die er al is. Elke Linux-gebruiker kan profiteren van planningssysteem- en gebruikerstaken, dankzij cron, een gebruiksvriendelijke achtergrondservice. Meer lezen om taken in Linux te plannen (of een alternatief voor Windows af te halen Cron-banen in Linux-stijl uitvoeren op Windows Linux-stijl Cron-taken uitvoeren op Windows Lees meer). Misschien kun je een fotolijst van stroom voorzien. ShowerThoughts en EarthPorn: maak een inspirerende frambozenpi-fotolijst ShowerThoughts en EarthPorn: maak een inspirerende frameraam voor frambozen Pi Lees meer of maak een dashboard voor een kantoor - dat is wat ik deed!
Heb je eerder contact gehad met Google Spreadsheets? Laat ons je ervaringen weten in de reacties hieronder!
Ontdek meer over: Google Drive, Google Spreadsheets, Python.