前提・実現したいこと
Google Driveの共有フォルダから、ファイルをフォルダ単位でダウンロードする事が目的です。
以下サイトを参考にPythonのPydriveを使用してコードを作成したのですが、ダウンロードを行うことが出来ませんでした。
OAuthについては、認証済です。
settings.yamlについても設定済です。
pydriveに詳しい方いらっしゃいましたら、是非ご教示をお願いいたします。
PyDriveでGoogle Driveの特定フォルダ配下のファイルをすべてダウンロードする
https://qiita.com/i8b4/items/322dc8d81427717a86e4
Python, PyDriveでGoogle Driveのダウンロード、アップロード、削除など
https://note.nkmk.me/python-pydrive-download-upload-delete/
Python, PyDriveでGoogle Driveのフォルダ作成、ファイル移動、一括処理
https://note.nkmk.me/python-pydrive-folder/
発生している問題・エラーメッセージ
qiitaを参考にしたコードにおいてエラーメッセージは、発生しておりません。 ローカルPCにフォルダは作成されますが、ダウンロードはされませんでした。
該当のソースコード
Qiita
Python
1import os 2from pydrive.drive import GoogleDrive 3 4drive = GoogleDrive(gauth) 5 6drive_folder_id = '{ダウンロード対象フォルダのID}' 7save_folder = '{保存先フォルダのパス(ローカル)}' 8 9 10def download_recursively(save_folder, drive_folder_id): 11 # 保存先フォルダがなければ作成 12 if not os.path.exists(save_folder): 13 os.makedirs(save_folder) 14 15 max_results = 100 16 query = "'{}' in parents and trashed=false".format(drive_folder_id) 17 18 for file_list in drive.ListFile({'q': query, 'maxResults': max_results}): 19 for file in file_list: 20 # mimeTypeでフォルダか判別 21 if file['mimeType'] == 'application/vnd.google-apps.folder': 22 download_recursively(os.path.join(save_folder, file['title']), file['id']) 23 else: 24 file.GetContentFile(os.path.join(save_folder, file['title'])) 25 26download_recursively(save_folder, drive_folder_id)
試したこと
アクセス先が、共有フォルダであるため、認証の問題等あるのかと思い、下記の情報を取得するコードを実行しましたが、それらは問題なく動作しました。
・指定フォルダ配下のファイルリスト取得
・指定フォルダのメタデータ取得
など
Python
1#指定フォルダ配下のファイルリスト取得 2dir1_id = drive.ListFile({'q': 'title = "{対象フォルダ名}"'}).GetList()[0]['id'] 3for f in drive.ListFile({'q': '"{}" in parents'.format(dir1_id)}).GetList(): 4 print(f['title'], ' \t', f['id'])
Python
1#指定フォルダのメタデータ取得 2import pprint 3file_id = drive.ListFile({'q': 'title = "{対象フォルダ名}"'}).GetList()[0]['id'] 4f = drive.CreateFile({'id': file_id}) 5f.FetchMetadata() 6pprint.pprint(f)
公式(pydrive)のドキュメントや参考に認証情報のやり直しもしてみましたがダウンロードはできませんでした。
https://pythonhosted.org/PyDrive/
google colaboratoryのドキュメントも参考にしてみましたが、共有フォルダを指定するとダウンロードできませんでした。
https://colab.research.google.com/notebooks/io.ipynb?hl=ja#scrollTo=hEzpzWYWsYKg
補足情報(FW/ツールのバージョンなど)
PC:mac
実行環境:Jupyter notebook
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。