web-dev-qa-db-ja.com

グーグルドライブからコラボラトリーへのファイルのダウンロード

グーグルドライブからコラボラトリーにファイルをダウンロードしようとしていました。

file_id = '1uBtlaggVyWshwcyP6kEI-y_W3P8D26sz'

import io
from googleapiclient.http import MediaIoBaseDownload

request = drive_service.files().get_media(fileId=file_id)
downloaded = io.BytesIO()
downloader = MediaIoBaseDownload(downloaded, request)
done = False
while done is False:
  # _ is a placeholder for a progress object that we ignore.
  # (Our file is small, so we skip reporting progress.)
  _, done = downloader.next_chunk()

downloaded.seek(0)
print('Downloaded file contents are: {}'.format(downloaded.read()))

そうすると、次のエラーが発生します。

NameError: name 'drive_service' is not defined

このエラーを取り除く方法は?

4
A Santosh

グーグルドライブからコラボノートブックにファイルをダウンロードする最も簡単な方法は、コラボAPIを使用することです。

from google.colab import drive
drive.mount('/content/gdrive')

!cp '/content/gdrive/My Drive/<file_path_on_google_drive>' <filename_in_colabo>

備考:

  1. Drive.mount()を使用すると、Googleドライブ上の任意のファイルにアクセスできます。
  2. 「マイドライブ」は、ローカルファイルシステムの「Googleドライブ」に相当します。
  3. マウントポイントの下の標準ディレクトリ(「マイドライブ」)にはスペースがあるため、file_pathは一重引用符で囲まれています。また、パスにスペースがある場合もあります。
  4. ファイルを見つけてファイルパスを取得するのに非常に便利なのは、ファイルブラウザです(左矢印をクリックするとアクティブになります)。マウントされたフォルダ構造をクリックしてファイルパスをコピーできます。下の画像を参照してください。

enter image description here

7
Agile Bean

これが簡単な方法です。 Pythonでwgetコマンドまたはrequestsモジュールを使用して、ジョブを実行できます。

# find the share link of the file/folder on Google Drive
file_share_link = "https://drive.google.com/open?id=0B_URf9ZWjAW7SC11Xzc4R2d0N2c"

# extract the ID of the file
file_id = file_share_link[file_share_link.find("=") + 1:]

# append the id to this REST command
file_download_link = "https://docs.google.com/uc?export=download&id=" + file_id 

file_download_linkの文字列をブラウザのアドレスバーに貼り付けると、ダウンロードダイアログボックスを直接表示できます。

Wgetコマンドを使用する場合:

!wget -O ebook.pdf --no-check-certificate "$file_download_link"
4
Dex

Pydriveを使用してGoogleドライブからファイルをダウンロードすることをお勧めします。 500MBのデータセットを5秒間ダウンロードします。 1.Pydriveをインストールします

!pip install PyDrive

2. OAouth

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

gauth = GoogleAuth()
gauth.LocalWebserverAuth()

drive = GoogleDrive(gauth)

3.グーグルドライブからファイルをダウンロードするためのコード

fileId = drive.CreateFile({'id': 'DRIVE_FILE_ID'}) #DRIVE_FILE_ID is file id example: 1iytA1n2z4go3uVCwE_vIKouTKyIDjEq
print fileId['title']  # UMNIST.Zip
fileId.GetContentFile('UMNIST.Zip')  # Save Drive file as a local file

チアモジハード

2
Mohamed Jihad

たとえば、GoogleドライブAPIとやり取りするには、ドライブAPIサービスクライアントを定義する必要があります。

from googleapiclient.discovery import build
drive_service = build('drive', 'v3')

(ノートブックを参照 外部データ:ドライブ、スプレッドシート、クラウドストレージ/ドライブREST API

2
user2314737

ステップ1

!pip install -U -q PyDrive

ステップ2

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials
# Authenticate and create the PyDrive client.
# This only needs to be done once per notebook.
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)

ステップ

file_id = '17Cp4ZxCYGzWNypZo1WPiIz20x06xgPAt' # URL id. 
downloaded = drive.CreateFile({'id': file_id})
downloaded.GetContentFile('shaurya.txt')

ステップ4

!ls #to verify content

OR

import os
print(os.listdir())
2
shaurya uppal

Google.colabとPyDriveの実装を https://github.com/ruelj2/Google_drive で使用することもできます。これにより、はるかに簡単になります。

!pip install - U - q PyDrive  
import os  
os.chdir('/content/')  
!git clone https://github.com/ruelj2/Google_drive.git  

from Google_drive.handle import Google_drive  
Gd = Google_drive()  
Gd.load_file(local_dir, file_ID)
0
Jean-Christophe