PyDrive:无法将文件写入特定GDrive文件夹
我正在尝试用PyDrive把文件从本地电脑复制到GDrive的一个特定文件夹。如果目标文件夹还不存在,我想先创建它。以下是我代码中相关的部分:
gfile = drive.CreateFile({'title':'dummy.csv',
'mimeType':'text/csv',
'parent': tgt_folder_id})
gfile.SetContentFile('dummy.csv')
gfile.Upload() # Upload it
我确定我已经正确创建或找到目标文件夹,并且tgt_folder_id也是正确的,但PyDrive总是把文件写到我Google Drive的根文件夹,而不是我通过'parent'参数指定的目标文件夹。
我这里做错了什么呢?
2 个回答
1
你好 @i-am-nik,要列出子文件夹,你可以稍微修改一下这行代码:
file_list = drive.ListFile({'q': 'trashed=false', 'maxResults': 10}).GetList()
for file1 in file_list:
print('title: %s, id: %s' % (file1['title'], file1['id']))
这样的话,它会同时列出文件夹和子文件夹(当然,如果你的文件很多,可能需要调整maxResults的值或者添加更具体的查询条件)。
28
好的,看起来这就是你该怎么做:
gfile = drive.CreateFile({'title':'dummy.csv', 'mimeType':'text/csv',
"parents": [{"kind": "drive#fileLink","id": tgt_folder_id}]})
这里提到的“parents”这个映射是在Google Drive的SDK中用到的,而PyDrive就是为了简化这个SDK的使用。不过,我看到的很少的PyDrive示例都用的是“parent”,而且似乎不太管用。
总之,希望这能帮助到其他遇到同样问题的人。