Python PyDrive上载和删除

Python PyDrive上载和删除,python,google-drive-api,pydrive,Python,Google Drive Api,Pydrive,我不熟悉Google Drive API,并编写了一个最简单的脚本,可以自动将图像从本地驱动器上传到Google Drive,然后一旦上传图像,删除本地副本,我得到的结果如下: #%% import os from pydrive.auth import GoogleAuth from pydrive.drive import GoogleDrive from googleapiclient.http import MediaFileUpload g_login = GoogleAuth() g

我不熟悉Google Drive API,并编写了一个最简单的脚本,可以自动将图像从本地驱动器上传到Google Drive,然后一旦上传图像,删除本地副本,我得到的结果如下:

#%%
import os
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from googleapiclient.http import MediaFileUpload
g_login = GoogleAuth()
g_login.LocalWebserverAuth()
drive = GoogleDrive(g_login)

#%%
header = 'images/dice'
path = header + str(i) + '.png'
file = drive.CreateFile()
file.SetContentFile(path)
file.Upload()
if file.uploaded:
    print("test")
    os.remove(path)
但是,当尝试删除本地副本时,会发生以下错误:

PermissionError:[WinError 32]进程无法访问该文件,因为另一个进程正在使用该文件:“images/dice1.png”

我搜索了它,认为它可能是SetContentFile(路径),它在Upload()之后没有关闭该文件,根据

上传后应自动关闭

我在这里监督什么

注意:最后,我想使用一个循环遍历目录中的所有文件

这是输出:

1
test
---------------------------------------------------------------------------

PermissionError                           Traceback (most recent call last)

<ipython-input-21-2aeb578b5851> in <module>
      9 if file.uploaded:
     10     print("test")
---> 11     os.remove(path)
     12 

PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'images/dice1.png'
1
测试
---------------------------------------------------------------------------
PermissionError回溯(最近一次调用上次)
在里面
9如果文件已上载:
10打印(“测试”)
--->11.删除操作系统(路径)
12
PermissionError:[WinError 32]进程无法访问该文件,因为另一个进程正在使用该文件:“images/dice1.png”

即使PyDrive没有为您关闭它,从代码来看,您似乎可以执行以下操作:

。。。
尝试:
file.Upload()文件
最后:
file.content.close()文件
如果文件已上载:
...

请您试一试,看看是否有帮助?

是否打印“测试”?是否打印“测试”?是否打印工作目录?那是什么?那是你的本地车吗?我想这就是问题所在。这个文件会被打开两次吗?文档说SetContentFile打开文件。我正在使用pycharm项目,是的,在本地驱动器pycharm projects\example下打印os.cwd()时。我认为该文件不会被打开两次,因为它说:“打开此方法指定的文件。将通过Upload()方法读取、上载和关闭。如果未指定,则自动设置元数据‘title’和‘mimeType’。”。我已经包括了一个项目树的照片。或者有没有其他方法来完成我想做的事情?