PyDrive:无法将文件写入特定的GDrive文件夹

时间:2014-04-08 10:39:57

标签: python google-drive-api

我正在尝试使用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云端硬盘的根文件夹,而不是我指定的目标文件夹通过'parent'参数。

我在这里做错了什么?

2 个答案:

答案 0 :(得分:26)

好的,看起来就像你这样做:

gfile = drive.CreateFile({'title':'dummy.csv', 'mimeType':'text/csv',
        "parents": [{"kind": "drive#fileLink","id": tgt_folder_id}]})

"父母"地图用于谷歌驱动器SDK,PyDrive应该包装。但我在PyDrive中看到的极少数例子使用了#34; parent"并且似乎不起作用。

无论如何,希望这可以帮助遇到同样问题的其他人。

答案 1 :(得分:1)

Ahoj @ 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值或添加缩小查询范围。