2013-03-11 122 views
2

我正嘗試使用Python Google Drive API爲文件構建遠程路徑。給定一個路徑,說/folderA/FolderB/folderC/theFile.txt我想在Drive上創建folderA,然後在folderB中,然後在B中,在將文件上傳到folderC之前創建folderC。構建路徑 - Google Drive SDK

我有一個短循環:

currentParent = pathStartID 
for aFolder in pathArray: 
    thisFoldersID = self.createRemoteFolder(aFolder, parentID = currentParent) 
    currentParent = thisFoldersID 

予先在驅動器根目錄中創建folderA,和folderA的ID是 'pathStartID'。 pathArray包含folderB和folderC的名稱。

createRemoteFolder() 

看起來是這樣的:

def createRemoteFolder(self, folderName, parentID = None): 
    # Create a folder on Drive, returns the newely created folders ID 
    body = { 
     'title': folderName, 
     'mimeType': "application/vnd.google-apps.folder" 
    } 
    if parentID: 
     body['parentsCollection'] = [{'id': parentID}] 
     root_folder = driveFileMan.client.files().insert(body = body).execute() 
    return root_folder['id'] 

但由於某種原因在谷歌硬盤的根目錄中創建的每個文件夾,而不是在父文件夾像我想要的。

任何人都可以發現我做錯了什麼嗎?還是有更簡單的方法來做到這一點?

回答

1

看起來只是設置父級的錯誤屬性名稱。嘗試:

body['parents'] = [{'id': parentID}] 
+0

我應該已經發現了 - 花了好幾年時間撓着我的頭看着這個!太好了,謝謝你的幫助,那就是訣竅:) – Cian 2013-03-11 20:04:51