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

如何在Google Colab中获取Google Drive文件的最后编辑者信息

获取Google Drive文件最后编辑者信息的解决方案

首先,你当前的代码存在一个小问题:file_path在调用os.path.getmtime(file_path)之后才定义,会导致报错,需要调整顺序。

要获取文件的最后编辑者信息,仅通过os模块无法实现,必须借助Google Drive API来查询文件的详细元数据。以下是修改后的完整代码,包含获取最后编辑者的逻辑:

!pip install kora google-api-python-client
from kora.xattr import get_id
from google.colab import auth
auth.authenticate_user()
import gspread_dataframe as gd
import gspread
from google.auth import default
import pandas as pd
from googleapiclient.discovery import build
import os
import time
import datetime
from google.colab import drive

# 挂载Google Drive
drive.mount('/content/gdrive')

# 初始化Drive API服务
creds, _ = default()
service = build('drive', 'v3', credentials=creds)

root_path = "/content/gdrive/myRoot/"

# 遍历目录下所有文件
for (root, directories, files) in os.walk(root_path): 
    for file in files:
        # 先构建文件路径
        file_path = os.path.join(root, file)
        # 获取最后修改时间
        ctime = os.path.getmtime(file_path)
        last_update = datetime.datetime.strptime(time.ctime(ctime), "%c")
        # 获取文件ID
        fid = get_id(file_path)
        
        # 通过Drive API获取最后编辑者信息
        try:
            file_metadata = service.files().get(
                fileId=fid,
                fields='lastModifyingUser'  # 指定只获取最后编辑者字段,减少请求数据量
            ).execute()
            
            last_editor = file_metadata.get('lastModifyingUser', {})
            # 提取编辑者的名称和邮箱
            editor_name = last_editor.get('displayName', '未知')
            editor_email = last_editor.get('emailAddress', '未知')
            
            print(f"文件: {file} | 最后编辑者: {editor_name} ({editor_email}) | 最后修改时间: {last_update}")
            
            # 这里可以将数据存入DataFrame或其他存储
        except Exception as e:
            print(f"获取文件 {file} 编辑者信息失败: {str(e)}")

关键说明:

  • 安装google-api-python-client库,用于调用Google Drive API
  • 初始化Drive API服务时,使用已有的认证凭据creds
  • 调用service.files().get()时,通过fields参数指定只获取lastModifyingUser字段,提升请求效率
  • lastModifyingUser返回的是一个字典,包含displayName(显示名称)和emailAddress(邮箱)等信息
  • 增加异常处理,避免因权限问题或文件不存在导致程序中断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 18:24:31