如何在Google Colab中获取当前帐户名称

时间:2018-10-15 13:33:34

标签: google-colaboratory

例如,如果我当前的Colab实例以

登录

myColab@gmail.com

是否可以在ipython中获得名称“ myColab”?

执行此命令的命令是什么?

我想这样做是因为我可能要运行两个Colab,并且它们会生成文件,我想用Colab帐户名标记这些文件,所以我知道哪个帐户会生成这些文件。

3 个答案:

答案 0 :(得分:1)

默认情况下,不对任何特定用户的后端进行身份验证。但是,如果您已完成gcloud auth流程,则可以像这样检索电子邮件地址:

https://colab.research.google.com/drive/1VVWs_pcjjz2vg0H2Ti6-12FzcCojRF6a

关键代码段是:

import requests
gcloud_token = !gcloud auth print-access-token
gcloud_tokeninfo = requests.get('https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=' + gcloud_token[0]).json()
print(gcloud_tokeninfo['email'])

答案 1 :(得分:0)

或者只运行以下内容:

!gcloud config get-value account

答案 2 :(得分:0)

我试图让当前用户通过 GDrive 身份验证登录。我不想推送另一个身份验证,只是为了记录名称。我相信 OP 正在尝试同样的事情。

我的理论是,使用谷歌驱动器登录,创建一个文件,然后读取文件的创建者。这不会按预期运行,它只返回 root:root。但它可能会激发一个想法,如何让比我更了解 Python 和 colab 的人完成这项工作。

如果您在目录 MyDrive 中创建文件,GDrive 可以看到该文件并显示所有者是 Me,将鼠标悬停在我上方会显示电子邮件帐户。 GDrive 知道是谁制作的。我只是不知道如何使 colab 输出成为真正的文件所有者,即使对于 MyDrive 中已经存在的文件。我认为这与坐骑具有象征意义有关,但是……必须有办法。

代码

print("test", file=open("owner.txt", "a"))
from pathlib import Path
path = Path("owner.txt")
owner = path.owner()
group = path.group()
print(f"{path.name} is owned by {owner}:{group}")

输出

owner.txt is owned by root:root