Colab中的wget没有下载完整的文件

Posted

技术标签:

【中文标题】Colab中的wget没有下载完整的文件【英文标题】:wget in Colab not downloading complete file 【发布时间】:2022-01-11 20:26:28 【问题描述】:

我在 Google Drive 上有一个目录 (temp0),其中包含 100,000 个小文件。我无法在 Google colab 中打开它,大概是因为文件太多。 所以我使用 python tarfile 创建了一个 temp0.tar.gz 文件,它是 489KB,我想从我的 Google Drive 下载它并在 Colab 环境中解压它。 我用过:

!wget -O temp0.tar.gz https://drive.google.com/open?id=1lmGFLXtkvhucF033MmBW9yNiAaEgk4_d&authuser=alantjohnstone%40gmail.com&usp=drive_fs

它似乎工作报告:

Resolving drive.google.com (drive.google.com)... 74.125.31.113, 74.125.31.102, 74.125.31.138, ...
Connecting to drive.google.com (drive.google.com)|74.125.31.113|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://accounts.google.com/ServiceLogin?service=wise&passive=1209600&continue=https://drive.google.com/open?id%3D1lmGFLXtkvhucF033MmBW9yNiAaEgk4_d&followup=https://drive.google.com/open?id%3D1lmGFLXtkvhucF033MmBW9yNiAaEgk4_d [following]
--2021-12-06 16:14:13--  https://accounts.google.com/ServiceLogin?service=wise&passive=1209600&continue=https://drive.google.com/open?id%3D1lmGFLXtkvhucF033MmBW9yNiAaEgk4_d&followup=https://drive.google.com/open?id%3D1lmGFLXtkvhucF033MmBW9yNiAaEgk4_d
Resolving accounts.google.com (accounts.google.com)... 64.233.170.84, 2607:f8b0:400c:c07::54
Connecting to accounts.google.com (accounts.google.com)|64.233.170.84|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘temp0.tar.gz’
temp0.tar.gz            [ <=>                ]  89.18K  --.-KB/s    in 0.001s  
2021-12-06 16:14:13 (60.9 MB/s) - ‘temp0.tar.gz’ saved [91323]

但是它只下载了 489K 中的 90K 我无法打开结果以查看它实际上是什么。 有人能告诉我我做错了什么吗?

【问题讨论】:

这和 Python 有什么关系?除此之外,查看wget 的输出——它正在下载text/html 类型的数据。尝试将下载的 tar.gz 文件重命名为 something.html 并在浏览器中查看。 【参考方案1】:

我发现了如何将大文件从 Google Drive 移动到 colab 环境。

1 通过右键单击文件并选择“获取链接”来获取文件 ID。 复制链接并将权限更改为 Anybody with Link

2 在 Colab 中,将链接粘贴到单元格中并以 !gdown --id 为前缀

3 注意您必须在 ID 之前和之后删除所有垃圾 例如https://drive.google.com/file/d/1m3NvCCyuRptopEPBXSPHaNCkfVx4E6ZR/view?usp=sharing ID是1m3NvCCyuRptopEPBXSPHaNCkfVx4E6ZR

【讨论】:

【参考方案2】:

我认为你不能直接从谷歌驱动器下载东西,你也需要把网址放在引号中。一种解决方案是使用左侧的按钮安装您的谷歌驱动器。

【讨论】:

以上是关于Colab中的wget没有下载完整的文件的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统wget下载数据出现如图非正式数据的原因是啥?

通过 wget 从 Dropbox 链接下载包含子文件夹的文件夹到 Unix 服务器

如何从Colab / Jupyter中的共享Google Drive链接获取文件?

wget-文件下载工具

使用 wget 检查文件是不是已完全下载

告诉 wget 只下载目录中最新的文件?