如何用python讀寫google工作表

Python看起來很奇怪,也很不尋常,但是它很容易學習和使用。在本文中,我將向您展示如何使用Python讀取和寫入Google工作表。...

Python是一種優秀的編程語言。語法可能看起來奇怪和不尋常,但它很容易學習和使用。它支持Minecraft Pi版,以及一系列網站和學術研究項目。

python-google-sheets

在本文中,我將向您展示如何使用Python讀寫googlesheets。如果您剛剛開始Python之旅,那麼以下5個學習Python的最佳網站是一個很好的起點。

谷歌設置

在跳轉到代碼之前,需要在Google表單上進行一些初始設置。

首先,為自己創建一個新表。如果已經設置了一個,則可以跳過此步驟。我使用的是拉力賽車列表:

google sheets rally cars

現在您需要設置共享選項。您將需要生成簽名憑據,這聽起來比實際情況更困難。導航到Google開發者控制檯並創建新項目(或使用現有項目):

google developers c***ole

為項目指定一個合適的名稱,然後單擊“創建”:

developers c***ole project name

在Google Apps API下面選擇Drive API:

google apps apis

選擇啟用:

google_api_enable

現在選擇左側菜單上的憑據:

google api credentials

單擊“創建憑據”按鈕上的小箭頭:

google api create credentials

現在選擇服務帳戶密鑰:

google api service account

選擇service account下的App Engine default service account和JSON作為格式:

google api service account creation

單擊create,您應該下載.json文件。將此文件移到項目目錄並重命名它creds.json. 最後,打開文件並查找客戶端電子郵件。這應該是您的項目名稱appspot.gserviceaccount.com. 使用此電子郵件地址共享您的Google工作表(右上角>共享>輸入電子郵件)。

這是谷歌驅動方面的。

python設置

有兩個主要的Python版本:2.7和3.x。我將使用2.7,但是使用什麼並不重要。如果您感興趣的話,pythonwiki會分解這些差異。您可能希望安裝虛擬環境。這超出了本文的討論範圍,但是是一個好的實踐。

如果您運行的是Microsoft Windows,則可能需要下載並安裝Python。Mac操作系統已經安裝了Python。因為我使用的是Mac,所以這個項目將被創建成這樣。您應該能夠在Windows或Linux機器上很好地跟蹤。你一定要看我們的指南,看你是否應該換。

首先,打開一個新的終端。您需要使用pip來安裝一些Python包。這是一個推薦工具,使管理包變得非常容易。它與Python一起提供。

您需要安裝oauth2client。Oauth是一個web授權框架。我將不討論它的細節,但它是所有工作的正確和安全的必要條件。使用pip很容易安裝:

pip install oauth2client

您可能還需要安裝PyOpenSSL,具體取決於您的設置:

pip install PyOpenSSL

現在您需要在GitHub上安裝Anton Burnashev的Gspread。這是一個非常好的庫,它的目的是使用Python訪問googlesheets變得非常容易。同樣,使用pip很容易安裝:

pip install gspread

現在打開你最喜歡的文本編輯器(我使用的是Sublime文本3)。創建一個新的Python文件,並將其作為google保存在您的項目目錄中_輸入輸出. 測試代碼如下:

print 'Hello, World!'

返回到終端並導航到項目目錄。您可以通過cd命令執行此操作。可以使用ls列出文件,使用pwd顯示工作目錄。

一旦進入項目目錄,就可以像這樣執行Python腳本:

python google_io.py

你現在應該看到你好,世界!在命令行中:

python hello world

既然Python工作正常了,那麼讓我們繼續設置庫。刪除hello world代碼。現在導入Gspread並再次執行代碼:

import gspread

如果一切正常,什麼也不會發生。如果您得到一個錯誤,也許說沒有模塊名為X,其中X是您鍵入的模塊的名稱(Gspread),去仔細檢查pip是否正確安裝了模塊,並且您沒有出現印刷錯誤。

以下是啟動代碼:

import jsonimport gspreadfrom oauth2client.client import SignedJwtAssertionCredentialsjson_key = json.load(open('creds.json')) # json credentials you downloaded earlierscope = ['https://spreadsheets.google.com/feeds']credentials = SignedJwtAssertionCredentials(json_key['client_email'], json_key['private_key'].encode(), scope) # get email and key from credsfile = gspread.authorize(credentials) # authenticate with Googlesheet = file.open("MUO_Python_Sheet").sheet1 # open sheet

這只是從.json文件中檢索您的詳細信息,然後使用它們向Google進行身份驗證。然後打開一個名為MUO\u Python\u sheet的表。您可能需要將其更改為工作表的名稱(前提是您已正確共享)。Python是區分大小寫的,所以請確保您正確輸入了這段代碼。

閱讀

現在一切都設置好了,讀取或寫入數據就很簡單了。下面是如何選擇一系列單元格(在本例中是所有的car單元格):

all_cells = sheet.range('A1:C6')print all_cells

下面是它的樣子:

google_sheets_python_read

不是很好吧?Python已經轉儲了對象的內容,而不考慮格式化。因為它存儲在all\u cells變量中,所以可以像訪問任何其他Python對象一樣訪問它。以下是如何以更好的格式打印所有單元格值:

for cell in all_cells:print cell.value

看起來是這樣的:

python google sheets all values

可以單獨訪問單元格(但如果多次訪問,速度會很慢):

A1 = sheet.acell('A2').value # this cell contains "Ford"

或者可以使用單元格座標:

coord = sheet.cell(3, 0).value

很容易獲得一行的所有值:

row = sheet.row_values(1) # first row

或者你可以得到一整列。這將獲取模型行:

col = sheet.col_values(2) # models

請記住,這兩種方法不知道您有多少數據。如果只有三行,將返回多個額外的空單元格。訪問預定義的單元塊幾乎總是更好的。

寫作

寫回工作表同樣簡單,你可以使用單元格名稱或座標,就像閱讀:

sheet.update_acell('C2', 'Blue')sheet.update_cell(2, 3, 'Blue')

GitHub上的項目頁面有更多的例子。

如果你寫的是重要的工作表,你可能希望考慮一個安全單元。在某個單元格中存儲一個值(我使用“Don'tdeletethis”),然後首先讀取該單元格。如果內容發生了變化,那麼您的工作表中的列已經被添加或刪除,所以不要繼續寫!以下是實現這一目標的方法:

if sheet.acell('B3') != 'SAFETY':# something has changed in the sheet, DO NOT PROCEEDraise Exception("Oh My, I'm not ready for this.")else:# continue with your writingsheet.update_acell('C2','Blue')

這是一個很好的練習。它確保腳本不會意外寫入錯誤的列。它不能替代正確的備份(你確實有備份,對嗎?)。

既然你已經知道了基本知識,那就去做點酷的吧!瞭解如何使用cron在Linux中調度任務(或簽出Windows替代方案)。也許你可以給相框加電或者做個辦公室儀表板——我就是這麼做的!或者為什麼不和Heroku一起主持Python網站呢?

如果您也使用Excel,請學習如何將Excel數據導入到Python腳本中。

  • 發表於 2021-03-16 13:43
  • 閱讀 ( 74 )
  • 分類:程式設計

你可能感興趣的文章

r(r)和python(python)的區別

關鍵區別——r與python R是一種高階程式語言,是統計分析和報告的軟體環境。Python是一種高階通用程式語言。因此,R和Python的關鍵區別在於R是一種面向統計的程式語言,而Python是一種通用的程式語言。R可用於統計計算、機...

  • 發佈於 2020-10-20 09:33
  • 閲讀 ( 57 )

如何在任何使用python的計算機上安裝selenium webdriver

... 如何用python設定selenium webdriver ...

  • 發佈於 2021-03-10 21:27
  • 閲讀 ( 64 )

學習python?下面是如何複製檔案

... 如何用python的子程序模組複製檔案 ...

  • 發佈於 2021-03-11 10:45
  • 閲讀 ( 54 )

如何用python程式設計和控制arduino

Python風靡了編碼界。隨著這門新語言的興起,DIY電子領域也蓬勃發展。來自Arduino和Raspberry Pi等公司的開發板和單板計算機改變了人們生產家用電子產品的方式。如果你能用Python程式設計一個Arduino,那不是很棒嗎? ...

  • 發佈於 2021-03-11 16:20
  • 閲讀 ( 75 )

如何用selenium製作網路爬蟲

Web爬網對於自動執行網站上常規執行的某些任務非常有用。你可以像人類一樣編寫一個爬蟲來與網站互動。 ...

  • 發佈於 2021-03-11 23:41
  • 閲讀 ( 75 )

如何用程式碼讀寫xml檔案

您想學習如何從java讀寫XML檔案嗎? ...

  • 發佈於 2021-03-12 02:25
  • 閲讀 ( 66 )

如何用excel或google表替換索引卡

數字索引卡可能和紙質索引卡一樣有用,甚至更多。當我和microsoftword分享**索引卡的價值時,我就開始證明這一點。但是傳統索引卡的問題是什麼呢?它們不可搜尋。 ...

  • 發佈於 2021-03-12 12:04
  • 閲讀 ( 39 )

如何用google指令碼在google表單中傳送電子郵件

googlescripts是一個強大的工具,可以用來自動化Google生產力工具,比如表單和文件。自動傳送電子郵件的能力使它成為一個非常強大的工具。 ...

  • 發佈於 2021-03-14 04:11
  • 閲讀 ( 45 )

陣列和列表在python中的工作方式

...揮他們的全部潛能。今天我將透過基本知識和一些簡單的Python示例來討論您。 ...

  • 發佈於 2021-03-15 17:19
  • 閲讀 ( 55 )

瞭解如何使用python虛擬環境

無論您是一名經驗豐富的Python開發人員,還是剛剛起步,學習如何設定虛擬環境對於任何Python專案都是必不可少的。和我一起討論Python虛擬環境的所有知識。 ...

  • 發佈於 2021-03-16 10:00
  • 閲讀 ( 58 )