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

PyDrive列出文件夹子项时如何对返回的文件列表进行排序

PyDrive获取文件列表的排序实现方案

结论

完全支持按指定规则排序,共有两种实现方式:调用Drive API时直接指定排序参数、拿到返回结果后本地自定义排序。


方案1:API层面直接排序(推荐)

PyDrive封装的Google Drive API原生支持orderBy查询参数,无需额外处理返回结果,性能更高。
支持的常用排序字段如下:

  • title:文件/文件夹名称
  • modifiedDate:最后修改时间
  • createdDate:文件创建时间
  • fileSize:文件占用空间大小

排序规则:

  • 默认升序,直接填写字段名即可
  • 需降序排序时,在字段名后加空格加desc后缀即可

修改后的代码示例:

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
gauth = GoogleAuth()
gauth.LocalWebserverAuth()
drive = GoogleDrive(gauth)

def get_children(root_folder_id, order_by='title'):
    query_str = "'" + root_folder_id + "'" + " in parents and trashed=false"
    # 传入orderBy参数实现排序
    file_list = drive.ListFile({'q': query_str, 'orderBy': order_by}).GetList()
    return file_list

# 调用示例:按最后修改时间降序获取文件列表
# files = get_children('你的文件夹ID', order_by='modifiedDate desc')
# 调用示例:按文件名升序获取文件列表
# files = get_children('你的文件夹ID', order_by='title')

方案2:本地自定义排序

如果有API不支持的自定义排序规则,可以拿到返回的文件列表后,用Python原生的sorted函数自行排序:
代码示例:

def get_children(root_folder_id):
    query_str = "'" + root_folder_id + "'" + " in parents and trashed=false"
    file_list = drive.ListFile({'q': query_str}).GetList()
    # 示例1:按文件名升序排序
    sorted_by_title = sorted(file_list, key=lambda file: file['title'])
    # 示例2:按最后修改时间降序排序
    sorted_by_modified = sorted(file_list, key=lambda file: file['modifiedDate'], reverse=True)
    # 按需返回对应排序后的列表即可
    return sorted_by_title

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 23:36:02