使用Google Drive API Python客户端排除名称以点开头的文件夹
解决Google Drive API筛选非点开头文件夹的问题
首先你当前的查询语句存在两个关键问题:
1. 父文件夹ID的引号语法错误
原查询里的{root_folder_id}' in parents缺少开头的单引号,正确写法应该是'{root_folder_id}' in parents。这个语法错误会导致API无法正确解析查询条件,直接返回空结果,这也是你添加not name contains '.'后查不到任何文件夹的核心原因。
2. 用contains判断前缀不够直观
虽然官方文档提到contains对名称只做前缀匹配,但用not name contains '.'来排除以点开头的文件夹,语义上不够清晰。更合适的做法是使用does not start with运算符,直接表达“名称不以点开头”的逻辑,可读性更强,也避免对contains行为的误解。
修正后的查询代码
query = f""" '{root_folder_id}' in parents and mimeType = '{FOLDER_MIMETYPE}' and trashed = false and name does not start with '.' """
补充说明
如果修复引号后,原来的not name contains '.'其实也能正常工作(因为name contains '.'只会匹配以点开头的名称),但startsWith的写法更贴合你的需求场景,代码逻辑一目了然,后续维护也更方便。
内容的提问来源于stack exchange,提问作者Mr. Developerdude
相关产品推荐
相关产品推荐

