如何在Colab中用Python无需挂载直接打开Google共享盘最新修改文件
不挂载Google Drive读取共享盘最新修改文件实现方案
你可以通过Google Drive API直接调取共享盘文件,无需挂载到Colab运行环境,实现步骤如下:
1. 前置依赖安装与API授权
首先运行以下代码完成身份验证和依赖准备:
!pip install -q google-api-python-client google-auth-httplib2 google-auth-oauthlib pandas openpyxl from google.colab import auth from googleapiclient.discovery import build from googleapiclient.http import MediaIoBaseDownload import io import pandas as pd # 账号授权 auth.authenticate_user() drive_service = build('drive', 'v3')
2. 获取目标共享文件夹ID
打开你要读取的共享文件夹(对应你原代码里的/content/gdrive/MyDrive/gdrive/DMS - Finance Data Pack/Chennai/DMS Cakare/CustomerMaster/asterik/asterik路径),浏览器地址栏中https://drive.google.com/drive/folders/后面的字符串就是该文件夹的ID,替换后续代码中的你的目标文件夹ID即可。
3. 读取最新修改的Excel文件
运行以下代码自动筛选最新修改的文件并读取为DataFrame,和你原有业务逻辑完全兼容:
# 替换为你的目标共享文件夹ID FOLDER_ID = "你的目标文件夹ID" # 查询文件夹下所有未删除的文件,按修改时间倒序排列 results = drive_service.files().list( q=f"'{FOLDER_ID}' in parents and trashed=false", fields="files(id, name, modifiedTime)", orderBy="modifiedTime desc" ).execute() files = results.get('files', []) if not files: print("目标文件夹下无可用文件") else: # 取排序第一位的文件即为最新修改的文件 latest_file = files[0] print(f"读取最新文件:{latest_file['name']},修改时间:{latest_file['modifiedTime']}") # 直接下载文件到内存,无需写入本地磁盘 request = drive_service.files().get_media(fileId=latest_file['id']) file_content = io.BytesIO() downloader = MediaIoBaseDownload(file_content, request) done = False while done is False: status, done = downloader.next_chunk() # 读取内存文件为DataFrame file_content.seek(0) dfck = pd.read_excel(file_content)
嵌套文件夹处理说明
如果你的目标文件所在文件夹是多层嵌套的共享文件夹,只需要逐层获取每一级文件夹的ID,按上述逻辑查询到下一级文件夹ID后,替换FOLDER_ID继续查询即可,无需额外配置权限(只要你当前登录的Google账号有权限访问该共享文件夹即可正常读取)。
内容的提问来源于stack exchange,提问作者Jannu
相关产品推荐
相关产品推荐

