在Python中使用Gcs匹配通配符参数获取子目录中特定文件

2 投票
1 回答
117 浏览
提问于 2025-04-14 17:04

我正在尝试从指定的存储桶中获取特定的文件:

my_bucket
  dirA
    dirX
      file1.json
      file2.json
      file1.csv

    dirY
      file2.csv

  dirZ
    dirX
      file3.json
      file3.csv

我想使用Python的SDK中的“match_glob”参数,只获取符合**/dirX/**.json这个模式的文件。

也就是说,我想获取这些文件:dirA/dirX/file1.jsondirA/dirX/file2.jsondirZ/dirX/file3.json

但是尝试使用**/dirX/**.json这个模式时,结果却是空的。

这个模式有什么问题呢?

提前谢谢你!

1 个回答

0

你可以试试用这个模式 **/*.json,而不是 **/dirX/**.json。因为后者会返回空结果,因为 dirX 不是存储桶根目录下的一个文件夹,而是 dirA 和 dirZ 下面的一个子文件夹。

你可以像这样使用 match_glob 参数 **/*.json,这个模式会获取存储桶中任何目录下 dirX 子文件夹里的所有 .json 文件。

当 matchGlob 查询参数设置为一个通配符模式时,列出对象的操作只会返回与这个通配符模式匹配的对象。你可以查看这个 使用通配符列出对象和前缀 的链接。

撰写回答