Python是一種優秀的編程語言。語法可能看起來奇怪和不尋常,但它很容易學習和使用。它支持Minecraft Pi版,以及一系列網站和學術研究項目。
在本文中,我將向您展示如何使用Python讀寫googlesheets。如果您剛剛開始Python之旅,那麼以下5個學習Python的最佳網站是一個很好的起點。
在跳轉到代碼之前,需要在Google表單上進行一些初始設置。
首先,為自己創建一個新表。如果已經設置了一個,則可以跳過此步驟。我使用的是拉力賽車列表:
現在您需要設置共享選項。您將需要生成簽名憑據,這聽起來比實際情況更困難。導航到Google開發者控制檯並創建新項目(或使用現有項目):
為項目指定一個合適的名稱,然後單擊“創建”:
在Google Apps API下面選擇Drive API:
選擇啟用:
現在選擇左側菜單上的憑據:
單擊“創建憑據”按鈕上的小箭頭:
現在選擇服務帳戶密鑰:
選擇service account下的App Engine default service account和JSON作為格式:
單擊create,您應該下載.json文件。將此文件移到項目目錄並重命名它creds.json. 最後,打開文件並查找客戶端電子郵件。這應該是您的項目名稱appspot.gserviceaccount.com. 使用此電子郵件地址共享您的Google工作表(右上角>;共享>;輸入電子郵件)。
這是谷歌驅動方面的。
有兩個主要的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代碼。現在導入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下面是它的樣子:
不是很好吧?Python已經轉儲了對象的內容,而不考慮格式化。因為它存儲在all\u cells變量中,所以可以像訪問任何其他Python對象一樣訪問它。以下是如何以更好的格式打印所有單元格值:
for cell in all_cells:print cell.value看起來是這樣的:
可以單獨訪問單元格(但如果多次訪問,速度會很慢):
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腳本中。
關鍵區別——r與python R是一種高階程式語言,是統計分析和報告的軟體環境。Python是一種高階通用程式語言。因此,R和Python的關鍵區別在於R是一種面向統計的程式語言,而Python是一種通用的程式語言。R可用於統計計算、機...
... 如何用python設定selenium webdriver ...
Python風靡了編碼界。隨著這門新語言的興起,DIY電子領域也蓬勃發展。來自Arduino和Raspberry Pi等公司的開發板和單板計算機改變了人們生產家用電子產品的方式。如果你能用Python程式設計一個Arduino,那不是很棒嗎? ...
Web爬網對於自動執行網站上常規執行的某些任務非常有用。你可以像人類一樣編寫一個爬蟲來與網站互動。 ...
數字索引卡可能和紙質索引卡一樣有用,甚至更多。當我和microsoftword分享**索引卡的價值時,我就開始證明這一點。但是傳統索引卡的問題是什麼呢?它們不可搜尋。 ...
googlescripts是一個強大的工具,可以用來自動化Google生產力工具,比如表單和文件。自動傳送電子郵件的能力使它成為一個非常強大的工具。 ...
無論您是一名經驗豐富的Python開發人員,還是剛剛起步,學習如何設定虛擬環境對於任何Python專案都是必不可少的。和我一起討論Python虛擬環境的所有知識。 ...