我正在使用Python中的Colab从Google Drive中获取名为myProject的特定文件夹中的文件夹ID和文件夹名称.
Folder structure is like this:
Google Drive (When I open drive.google.com I see the below folder structure)
myProject
ImageToDoc
images
我已安装驱动器,它说成功.
但我总是得到"没有文件夹ID和文件夹名称".我知道有文件夹和文件,文件夹的名称也是正确的.
this is the code I am trying:
from googleapiclient.discovery import build
from google.oauth2 import service_account
import os
json_key_path = '/content/drive/My Drive/myProject/credentials.json'
if not os.path.exists(json_key_path):
print("JSON key file not found.")
exit()
credentials = service_account.Credentials.from_service_account_file(json_key_path)
drive_service = build('drive', 'v3', credentials=credentials)
def get_folder_id_by_name(folder_name, parent_folder_id='root'):
response = drive_service.files().list(
q=f"name='{folder_name}' and mimeType='application/vnd.google-apps.folder' and '{parent_folder_id}' in parents",
fields='files(id)').execute()
items = response.get('files', [])
if items:
return items[0]['id']
else:
return None
def list_folders_in_my_project():
my_project_folder_id = get_folder_id_by_name("myProject", parent_folder_id='root')
print("myProjectfolder ID:", my_project_folder_id)
if not my_project_folder_id:
print("myProject folder not found.")
return
response = drive_service.files().list(
q=f"'{my_project_folder_id}' in parents and mimeType='application/vnd.google-apps.folder'",
fields='files(name)').execute()
print("API Response:", response)
folders = response.get('files', [])
if folders:
print("Folders inside myProject folder:")
for folder in folders:
print(f"Folder Name: {folder['name']}")
else:
print("No folders found inside myProject folder.")
list_folders_in_my_project()
我不知道上面的代码有什么问题.有人能帮我解决这个问题吗?
谢谢!