例如,如果我当前的Colab实例以
登录 myColab@gmail.com
是否可以在ipython中获得名称“ myColab”?
执行此命令的命令是什么?
我想这样做是因为我可能要运行两个Colab,并且它们会生成文件,我想用Colab帐户名标记这些文件,所以我知道哪个帐户会生成这些文件。
答案 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