web-dev-qa-db-ja.com

Google Colabのドライブからファイルを読み取る

ドライブを開く方法について notebook を読みました。私はすでに指示どおりに使用しました:

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

この後、!lsドライブの内容を一覧表示しますが、ファイルを読み取ったり開いたりできません。私はすでに試しました:

with open("/content/drive/My Drive/filename.ext", "r") as file:

file = open("/content/drive/My Drive/filename.ext", "r")

!cp "/content/drive/My Drive/filename.ext" "filename.ext"

そしてまた

import pandas as pd

file = pd.read_csv("/content/drive/My Drive/filename.ext")

しかし、上記のどれもうまくいきませんでした。 「操作がサポートされていません」または「読み取り用にファイルを開けません」というメッセージが常に表示されます。 PyDriveを使用するための提案をいくつか見ました。ただし、GoogleドライブからGoogleドライブにファイルをコピーすることで行われます。フォルダー内のすべてのファイルを反復処理する必要があるため、ファイルを前後にコピーする必要がある理由はわかりません。ドライブに保存されているファイルをGoogle Colabで読み取れないのはなぜですか?それとも私は何か間違ったことをしていますか?もう1つは、大量のcsvファイルをアップロードしましたが、Googleドライブではそれらを「.csv.gsheet」としてリストします(globを使用)。それが問題でしょうか?他にアイデアはありません。

3
RenatoSz

ボブ・スミスとAMI Fの回答に基づいて、私は(部分的に)何が起こっているのかを知りました。
Googleドライブは、ドライブ形式(gsheet、gdocなど)に変換されたファイルからの読み取りアクセスをブロックすると思います。そして、私が!catまたはopen、「サポートされていない操作」エラーが発生しました。ボブの例を試し、ファイルを作成してそれを読み取ったところ、私のノートブックで動作しました。
それで、なんとか googleがファイルを変換できないようにする になり、古いファイルを削除し、すべてをアップロードして再度ドライブしました。これで、すべてのcsvは変更されずに維持され(.gsheet拡張機能はありません)、openを使用してそれらにアクセスできます。

0
RenatoSz

かなり簡単です!

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

これにより、トークンをコピーして貼り付けた後、マウントを許可するURLを開くように求められます。

今でもファイルを読み取ることができない場合は、prefixファイルパス: 'drive/My Drive 'そして、あなたは行ってもいいです。

例:file = 'drive/My Drive/data/file.txt'

ここで、datafile.txtファイルを含むGoogleドライブのディレクトリです。

8
MANU

説明したとおりにドライブファイルをマウントして作成しようとしたところ、説明したエラーを再現できませんでした。

https://colab.research.google.com/drive/17iiKJPQOPv1eW5-Ctf707mPHXDtipE5G

おそらく、ランタイム->すべてのランタイムメニューをリセットして、バックエンドをリセットしてみてください。または、問題を説明するノートブックを共有できますか?

2
Bob Smith

「.csv」ファイル名をアップロードしたにもかかわらず「.csv.gsheet」ファイル名が表示されるという事実は、CSVをdrive.google.comではなくsheets.google.comにアップロードしていると思います。 drive.google.comへのアップロードが機能することを確認できますか?

0
Ami F