在Python中使用Gcs匹配通配符参数获取子目录中特定文件
我正在尝试从指定的存储桶中获取特定的文件:
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.json
、dirA/dirX/file2.json
和dirZ/dirX/file3.json
。
但是尝试使用**/dirX/**.json
这个模式时,结果却是空的。
这个模式有什么问题呢?
提前谢谢你!
1 个回答
0
你可以试试用这个模式 **/*.json
,而不是 **/dirX/**.json
。因为后者会返回空结果,因为 dirX 不是存储桶根目录下的一个文件夹,而是 dirA 和 dirZ 下面的一个子文件夹。
你可以像这样使用 match_glob 参数 **/*.json
,这个模式会获取存储桶中任何目录下 dirX 子文件夹里的所有 .json 文件。
当 matchGlob 查询参数设置为一个通配符模式时,列出对象的操作只会返回与这个通配符模式匹配的对象。你可以查看这个 使用通配符列出对象和前缀 的链接。