如何使用 pydrive 从共享的 Google 驱动器上的“共享”文件夹中删除文件?

问题描述 投票:0回答:2

我正在尝试删除现有的 excel 文件,以便我可以上传最新版本。该文件位于共享文件夹中,因此很费劲,我真的找不到有关删除共享文件夹中文件的任何信息。下面是产生错误的代码。

def deleteExistingFile(team_drive_iddel, parent_folder_iddel):
    
    file_name = 'To_Label.xlsx'
    
    fileDel = drive.CreateFile({
    'title': file_name,
    'parents': [{
        'kind': 'drive#fileLink',
        'teamDriveId': team_drive_iddel,
        'id': parent_folder_iddel
    }]
    })
    
    fileDel.Trash()

team_drive_id = '0AHPtZymJwYgsUk9PVA'
parent_folder_id = '1KM6UIvmJ1nSZa62yFUxoQ-L4q6JZb4_W'
deleteExistingFile(team_drive_id,parent_folder_id)`

任何帮助将不胜感激。

以上是我尝试过的,它产生了错误,我也不确定在哪里可能需要“file_id”。

python google-drive-api pydrive
2个回答
0
投票

我在这里(堆栈溢出)找到了这个答案,但没有投票,现在我再也找不到了。

解决方案是从 pydrive 切换到 pydrive2,所以你会:

from pydrive2.auth import GoogleAuth  
from pydrive2.drive import GoogleDrive

gauth = GoogleAuth()  
gauth.LoadClientConfigFile('client_secrets.json')  
drive = GoogleDrive(gauth)

file = drive.CreateFile({'id': 'YOURfileID'})  
file.Trash()

尽量不要使用 file.Delete() 以防你永久删除你不想删除的东西,比如我如何删除整个文件夹:) 安全并使用 file.Trash()


0
投票

您需要提供要删除的文件的ID。您试图通过提供文件名和父文件夹 ID 来删除文件,这还不够

def deleteExistingFile(team_drive_id, parent_folder_id):
    
    file_name = 'To_Label.xlsx'
    
    # Search for the file using the filename and parent folder ID
    file_list = drive.ListFile({
        'q': "'{}' in parents and trashed=false and title='{}'".format(parent_folder_id, file_name),
        'teamDriveId': team_drive_id
    }).GetList()
    
    # If the file exists, delete it
    if file_list:
        file_id = file_list[0]['id']
        file_del = drive.CreateFile({'id': file_id})
        file_del.Delete()
    else:
        print('File not found')
© www.soinside.com 2019 - 2024. All rights reserved.