You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Colab中TensorFlow从GitHub导入文本文件问题咨询

问题核心原因

所有读取到HTML源码的问题,本质是传入get_file的URL是GitHub的网页展示地址,不是文件原始内容的直链,请求这类地址返回的本来就是网页HTML,自然读不到目标文本。另外TensorFlow自带的解压逻辑不支持7z格式,就算拿到正确的7z文件链接也会解压失败。

可直接复用的解决方案

GitHub文件正确加载方式

  • 拿直链不要拿网页链接:打开GitHub上的目标文件页面,点击页面右上角的Raw按钮,复制跳转后的地址栏链接,这个链接才会直接返回原始文件内容,不带任何页面HTML结构。
  • 压缩包优先用zip格式:不要用7z,TensorFlow的get_file方法默认仅支持zip、tar、gztar等常见压缩格式的自动解压,7z需要额外装依赖,容易出问题。
  • 单文件加载修正代码:
import tensorflow as tf
from tensorflow.keras import utils
import pathlib

# 替换为你复制的Raw根目录地址,对应仓库存放文本文件的目录
DIRECTORY_URL = 'Raw地址前缀'
FILE_NAMES = ['file1.txt', 'file2.txt', 'file3.txt', 'file4.txt']

for name in FILE_NAMES:
  text_dir = utils.get_file(name, origin=DIRECTORY_URL + name)

parent_dir = pathlib.Path(text_dir).parent
list(parent_dir.iterdir())
  • 压缩包加载修正代码:
# 替换为zip包对应的Raw直链
data_url = 'zip文件的Raw直链地址'

dataset_dir = utils.get_file(
    origin=data_url,
    extract=True,
    cache_dir=None,
    cache_subdir='')

dataset_dir = pathlib.Path(dataset_dir).parent
# 路径要和压缩包内部的实际目录结构对应,不要硬编码目录名
text_dir = dataset_dir
list(text_dir.iterdir())

Google Drive读取异常修复

不要用Drive的分享页面链接,先把文件权限设置为「知道链接的任何人可查看」,提取分享链接里的文件ID,拼接为直链格式https://drive.google.com/uc?id=你的文件ID,再把这个直链作为origin参数传入即可正常读取。

不同规模文本数据集的高效导入方案

  • 100MB以下小数据集:直接用上述GitHub Raw直链方案,Colab访问GitHub Raw资源走内网,拉取速度极快,不需要额外配置。
  • 100MB~10GB中等规模数据集:优先使用Hugging Face Datasets库加载,可将自有数据集上传至Hugging Face Hub,在Colab中几行代码即可直接加载为tf.data.Dataset格式对象,支持流式读取,不需要全量下载到本地磁盘就能直接送入训练流程,省去手动解压、路径校验的步骤。
  • 10GB以上大规模数据集:如果Google Cloud Storage上传速度慢,可先将数据集上传至Hugging Face Hub,Colab访问Hub的带宽充足,不需要手动中转到Google Drive,比本地上传Drive的效率高一个量级。

快速校验技巧:每次下载完文件后,先读取文件前100字节打印,如果内容以<!DOCTYPE html>开头,说明当前用的还是网页链接而非文件直链,直接替换链接即可,不用继续运行后续预处理逻辑。

内容的提问来源于stack exchange,提问作者Coldgrad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 17:48:19