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

2015款校用Chromebook(Chrome OS)加载本地数据集路径报错求助

问题解决:Chrome OS加载本地图像数据集及路径错误修复

核心错误原因

  1. 路径错误:Chrome OS中"My Files"的系统实际路径不是你写的Files/My Files,而是/mnt/chromeos/MyFiles
  2. 压缩包访问方式错误:os.listdir无法直接读取zip压缩包内的目录,必须先解压或用专门的模块读取

Chrome OS文件访问规则

  • 本地"My Files"目录的系统绝对路径为/mnt/chromeos/MyFiles,代码中必须使用这个路径才能访问到你的文件
  • 如果启用了Linux开发环境(Crostini),该路径同样有效,无需额外配置
  • 压缩文件不能直接当作目录访问,需解压或用zipfile模块读取内部内容

解决方案一:解压后访问(简单直观)

  1. 在Chrome OS的文件管理器中双击flower.zip完成解压,解压后会生成同名文件夹(如flower)
  2. 使用以下修正后的代码:
import matplotlib.pyplot as plt
import os
import random

# 替换为解压后rose目录的绝对路径
rose_dir = "/mnt/chromeos/MyFiles/ProgrammingFiles/Programming/flower/train/rose"
# 过滤出目录下的图片文件
image_files = [f for f in os.listdir(rose_dir) if f.lower().endswith(('.png', '.jpg', '.jpeg'))]

figure, ax = plt.subplots(nrows=1, ncols=3, figsize=(10, 5))
for i, a in enumerate(ax.flat):
    selected_file = random.choice(image_files)
    # 用os.path.join拼接路径,避免手动拼接出错
    file_path = os.path.join(rose_dir, selected_file)
    img = plt.imread(file_path)
    a.imshow(img)
    a.axis('off')  # 隐藏坐标轴让图片显示更整洁
plt.tight_layout()
plt.show()

解决方案二:不解压直接读取zip内文件

如果不想占用额外存储空间,可使用zipfile模块直接读取压缩包内的图片:

import matplotlib.pyplot as plt
import zipfile
import random
import io

# zip文件的绝对路径
zip_path = "/mnt/chromeos/MyFiles/ProgrammingFiles/Programming/flower.zip"
# 压缩包内rose目录的相对路径
rose_zip_subdir = "train/rose/"

with zipfile.ZipFile(zip_path, 'r') as zf:
    # 筛选出rose目录下的所有图片文件
    image_files = [f for f in zf.namelist() 
                   if f.startswith(rose_zip_subdir) 
                   and f.lower().endswith(('.png', '.jpg', '.jpeg'))]
    # 随机选择3张图片
    selected_files = random.sample(image_files, 3)

    figure, ax = plt.subplots(nrows=1, ncols=3, figsize=(10, 5))
    for i, a in enumerate(ax.flat):
        # 从zip包中读取文件内容并转为可读取的字节流
        with zf.open(selected_files[i]) as f:
            img_data = io.BytesIO(f.read())
            img = plt.imread(img_data)
            a.imshow(img)
            a.axis('off')
    plt.tight_layout()
    plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 17:23:31