15

これまでのところ、ファイルが存在する場合は、フォルダーにファイルをアップロードできます。私はそれを作成する方法を理解できません。したがって、フォルダーが存在しない場合、スクリプトは終了します。

import sys
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive

gpath = '2015'
fname = 'Open Drive Replacements 06_01_2015.xls'

gauth = GoogleAuth()
gauth.LocalWebserverAuth()
drive = GoogleDrive(gauth)

file_list = drive.ListFile({'q': "'root' in parents and trashed=false"}).GetList()
for file1 in file_list:
    if file1['title'] == gpath:
        id = file1['id']

file1 = drive.CreateFile({'title': fname, "parents":  [{"kind": "drive#fileLink","id": id}]})
file1.SetContentFile(fname)
file1.Upload()

上記のコードを修正して、フォルダー gpath が存在しない場合は作成するのを手伝ってもらえますか?

4

3 に答える 3

15

ドキュメントに基づいて、それは

file1 = drive.CreateFile({'title': fname, 
    "parents":  [{"id": id}], 
    "mimeType": "application/vnd.google-apps.folder"})

更新: 2020 年 4 月の時点で、ドキュメント(v3) が更新され、API ドキュメントとショーが追加されました。

folder_id = '0BwwA4oUTeiV1TGRPeTVjaWRDY1E'
file_metadata = {
    'name': 'photo.jpg',
    'parents': [folder_id]
}
media = MediaFileUpload('files/photo.jpg',
                        mimetype='image/jpeg',
                        resumable=True)
file = drive_service.files().create(body=file_metadata,
                                    media_body=media,
                                    fields='id').execute()
print 'File ID: %s' % file.get('id')
于 2015-06-02T02:44:36.737 に答える