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

在GitHub仓库的Jupyter Notebook中遍历rasters_as_int文件夹内TIFF文件失败的问题求助

解决MyBinder中Jupyter Notebook遍历子文件夹TIFF文件的问题

看起来你在把TIFF文件移到rasters_as_int子文件夹后,遇到了glob路径匹配的问题——这在跨环境(比如MyBinder的远程容器)里很常见,主要是当前工作目录不明确或者硬编码路径分隔符导致的。下面给你几个可靠的解决办法:

1. 先确认当前工作目录(关键第一步)

在Notebook里先运行这段代码,明确你当前代码的执行路径:

import os
print(os.getcwd())

比如在MyBinder中,仓库通常会被克隆到类似/home/jovyan/你的仓库名的路径下,如果你直接运行Notebook,当前工作目录应该是仓库根目录,但偶尔会有例外,确认后才能准确构建路径。

2. 使用跨平台的路径构建方式(推荐)

避免手动写/或\,用Python的os.path.join来拼接路径,这样不管是Windows还是Linux(MyBinder用Linux容器)都能兼容:

import glob
import os

# 构建子文件夹的完整路径
folder_path = os.path.join(os.getcwd(), 'rasters_as_int')
# 遍历该文件夹下所有含TIFF的文件
rasters_list = glob.glob(os.path.join(folder_path, '*TIFF*'))

print(rasters_list)

3. 更现代的pathlib方式(Python 3.4+)

如果你用的是较新的Python版本,pathlib模块更直观,还能自动处理路径分隔符:

from pathlib import Path

# 获取当前目录下的rasters_as_int文件夹对象
folder = Path.cwd() / 'rasters_as_int'
# 遍历所有带TIFF的文件,返回Path对象列表
rasters_list = list(folder.glob('*TIFF*'))

# 如果需要字符串格式的路径,做个转换即可
rasters_list = [str(file) for file in rasters_list]
print(rasters_list)

4. 排查MyBinder中的路径异常

如果上面的方法还是不行,可能是MyBinder的工作目录和你预期的仓库根目录不一致。可以用os.path.abspath直接获取文件夹的绝对路径:

import glob
import os

# 获取rasters_as_int文件夹的绝对路径
abs_folder_path = os.path.abspath('rasters_as_int')
rasters_list = glob.glob(os.path.join(abs_folder_path, '*TIFF*'))
print(rasters_list)

为什么你之前的写法可能失败?

  • MyBinder运行的是Linux容器,Windows风格的\路径分隔符完全无效;
  • 开头的/表示系统根目录,不是你的仓库根目录,所以/rasters_as_int/*会去系统根目录查找,自然找不到目标文件;
  • 有时候Notebook的工作目录可能和你预期的不一样(比如从子文件夹打开Notebook),所以用os.getcwd()确认路径是关键。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 21:22:32