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脚本中。
... 如何用python设置selenium webdriver ...
Python风靡了编码界。随着这门新语言的兴起,DIY电子领域也蓬勃发展。来自Arduino和Raspberry Pi等公司的开发板和单板计算机改变了人们生产家用电子产品的方式。如果你能用Python编程一个Arduino,那不是很棒吗? ...
Web爬网对于自动执行网站上常规执行的某些任务非常有用。你可以像人类一样编写一个爬虫来与网站交互。 ...
数字索引卡可能和纸质索引卡一样有用,甚至更多。当我和microsoftword分享**索引卡的价值时,我就开始证明这一点。但是传统索引卡的问题是什么呢?它们不可搜索。 ...
googlescripts是一个强大的工具,可以用来自动化Google生产力工具,比如表单和文档。自动发送电子邮件的能力使它成为一个非常强大的工具。 ...
无论您是一名经验丰富的Python开发人员,还是刚刚起步,学习如何设置虚拟环境对于任何Python项目都是必不可少的。和我一起讨论Python虚拟环境的所有知识。 ...
黄昏到黎明开关和定时器开关都是方便的方式来自动控制您的灯光。如果你能将两者结合起来,甚至把它们连接到互联网上,形成一个真正的智能照明系统,那不是很好吗? ...
语音控制助理很快就变得司空见惯了。许多家庭都有一个Alexa或googlehome来控制从灯光到媒体的一切,甚至计时。 ...