从 colaboratory,是否可以直接在 google drive 中操作 sqlite 3 格式的数据?如果你上传它是可能的,但在谷歌驱动器中使用它很方便。
2 回答
您可以通过将 Google Drive 挂载为 FUSE 文件系统来从 Drive 加载文件目录。
这是一个示例: https ://colab.research.google.com/notebook#fileId=1srw_HFWQ2SMgmWIawucXfusGzrj1_U0q
没有官方的 Google Drive FUSE 文件系统。但是,第三方已经编写了几个开源 FUSE + Drive 库。上面的示例笔记本使用 google-drive-ocamlfuse。笔记本显示了三件事:
- 在 Colab VM 中安装 Drive FUSE 包装器。
- 使用 FUSE 包装器对 Drive 进行身份验证并安装 Drive。
- 在新安装的驱动器支持的文件系统中列出和创建文件。
首先,将 database.sqlite 和所需的 csv 文件(在我的情况下为 Reviews.csv)上传到 Google Drive。
然后,您需要使用以下命令在 Google Colab 中安装您的驱动器:
from google.colab import drive
drive.mount('/content/gdrive')
这将导致以下输出:
Go to this URL in a browser: https://accounts.google.com/o/oauth2/auth?client_id=947318989803-6bn6qk8qdgf4n4g3pfee6491hc0brc4i.apps.googleusercontent.com&redirect_uri=urn%3aietf%3awg%3aoauth%3a2.0%3aoob&response_type=code&scope=email%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdocs.test%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive.photos.readonly%20https%3a%2f%2fwww.googleapis.com%2fauth%2fpeopleapi.readonly
Enter your authorization code:
单击 URL 将指向一个新选项卡,该选项卡显示您的 Google 帐户以向 Google Drive File Stream 提供某些权限:
Choose an account
to continue to Google Drive File Stream
您必须选择登录 Google Colab 时使用的同一 Google 帐户。然后单击“允许”按钮。这将导致另一个页面显示字母数字代码。复制代码并将其粘贴到文本区域(输入您的授权代码:)。
因此,将显示有关正在安装的驱动器的消息:
··········
Mounted at /content/gdrive
现在单击文件夹图标(在“显示代码片段窗格”下方,位于代码单元格的左侧),您可以看到 gdrive 文件夹。您的 Google Drive - My Drive 将位于 gdrive 内。现在单击存储 database.sqlite 文件的所需文件夹。右键单击它并选择“复制路径”。
您复制的路径应粘贴在以下命令的路径链接中:
con = sqlite3.connect('paste the path you copied')
例如,如果 database.sqlite 位于“/content/gdrive/My Drive/Colab Notebooks/database.sqlite”中,则命令如下:
con = sqlite3.connect('/content/gdrive/My Drive/Colab Notebooks/database.sqlite')
现在您可以运行一些 SQL 查询来检查是否一切正常:
filtered_data = pd.read_sql_query("""
SELECT *
FROM Reviews
WHERE Score != 3
""", con)
print(filtered_data.head())