我正在尝试删除现有的 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”。
我在这里(堆栈溢出)找到了这个答案,但没有投票,现在我再也找不到了。
解决方案是从 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()
您需要提供要删除的文件的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')