質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

320閲覧

python colabからdrive ファイル アップロード

tttkkk

総合スコア38

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/06/15 22:34

google colabからgoogle driveへファイルをアップロードする方法として
マウントをした後に、python のコードでファイルをアップロードすることはできるのでしょうか。

いくつかのサイトを調べておりますと
driveへのマウントのやり方は紹介されており私自身も分かっているつもりではあります。

ここでアップロードしたいファイルというのがmplfinanceで作成しました画像をローカルに落とすことなく、
そのままdriveの指定フォルダにアップロードしたいと考えております。

作成した画像をルートフォルダにアップロードするだけでしたら、下記のサイト通りにすることで行うことが出来ました。
https://zenn.dev/yassh_i/articles/fe3f10dbf025e5

マウントについても調べましたところ、マウントすることでdriveのファイルをcolabで扱うために読み込むことはできるそうですが、
colabからdriveへファイルをアップロードする方法を見つけることができませんでした。

以下に簡単ですがサンプルコードを記載させていただきます。
ご参考にしていただけますと幸いです。
実行環境は
Windows10
google colab
python 3.7.13

python

1!pip install pandas_datareader 2import pandas_datareader as web 3stockCode = 3169 4stockCode = str(stockCode) + '.JP' 5start = '2022-01-01' 6end = '2022-05-30' 7df_stock = web.DataReader(stockCode, data_source = 'stooq', start = start, end = end) 8df_stock.sort_index(inplace= True) 9 10!pip install mplfinance 11%matplotlib inline 12import mplfinance as mpf 13savefigName = 'サンプル.png' 14mpf.plot(df_stock, type = 'candle', figratio = (10, 5), savefig = savefigName) 15 16# この後にローカルへサンプル.pngをローカルに落とすことなく、driveの指定フォルダへアップロードしたいと考えております。

私の今の知識としてdriveのフォルダを指定しようと思いますと、マウントをする以外に方法がないと思いました。
ですのでこのように、マウントをした状態からファイルをアップロードをする方法があればよいと考えました。
driveの指定フォルダにアップロードする方法としてマウント以外の方法があるのであれば、それでも問題ございません。

わかりづらい部分も多々あったかとは思いますが、
教えて頂けますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jbpb0

2022/06/15 23:11 編集

> mplfinanceで作成しました画像をローカルに落とすことなく、そのままdriveの指定フォルダにアップロードしたい の「mplfinanceで作成しました画像」は、どこにあるのでしょうか? ローカルPC(質問者さんが直接操作してるPC)でしょうか? それとも、google colab内でしょうか?
tttkkk

2022/06/16 03:28

分かりづらく申し訳ありません。 作成しました画像は google colab内にございます。
jbpb0

2022/06/16 06:05 編集

> 作成しました画像はgoogle colab内にございます。 google driveをgoogle colabにマウントして、 https://karaage.hatenadiary.jp/entry/2018/12/17/073000 の「Google Driveとの連携」に書かれてるように、「!mv」とか「!cp」とかでgoogle drive上のどこかに移動するかコピーするかしたらいいのではないでしょうか
tttkkk

2022/06/16 09:49

そのようなコマンドがあったとは知りませんでした。 教えていただきありがとうございます。 実際に !mv savefigName '/content/drive/My Drive' というコードでmvコマンドを実行してみたところ、 mv: cannot stat 'savefigName': No such file or directory というエラーメッセージが出てしまいました。 これはcpコマンドでも同様で、driveの中にはファイルがはいっておりませんでした。 このエラーはどのようにしたら解決できますでしょうか。 お手数ですが、教えて頂けますと幸いです。
jbpb0

2022/06/16 10:17

> mv: cannot stat 'savefigName': No such file or directory !ls -l で、カレントディレクトリにあるファイルを確認してください そこに「savefigName」はありますでしょうか? 無ければ、当然移動させることはできません (「savefigName」が実際のファイル名ではなく例えなら、実際のファイル名に読み替えてください)
jbpb0

2022/06/16 10:25

現在のカレントディレクトリは、下記を実行したら分かります !pwd 「mplfinanceで作成しました画像」が置いてある場所がカレントディレクトリではないなら、下記を実行して、カレントディレクトリを「mplfinanceで作成しました画像」が置いてある場所に変えます %cd 移動したい画像が置いてある場所(ディレクトリパス) そうすれば、 > mv: cannot stat 'savefigName': No such file or directory が出なくなるはずです
tttkkk

2022/06/16 22:48

ご丁寧にありがとうございます。 カレントディレクトリについては /content でございました。 その /content の中には サンプル.png のファイルもございました。 また今まではdriveに画像を保存する際に変数名を用いて !mv savefigName '/content/drive/My Drive' と書いておりましたが、 !mv サンプル.png '/content/drive/My Drive' とすることでdriveにアップロードすることができました。(MyDrive のようにスペースを入れても入れなくても問題なくアップロードはすることができました。) ここで疑問なのですが、 !mv 変数名 'driveのフォルダパス' というようにすることはできないものなのでしょうか。 私のコードの場合で言いますと、 !mv サンプル.png '/content/drive/My Drive' と「サンプル.png」とベタ打ちするのではなく、 !mv savefigName '/content/drive/My Drive' のように savefigName という変数を使用したいということです。 おそらく単純に !mv savefigName '/content/drive/My Drive' と書いてしまうと、savefigName がファイル名と認識されてしまい、変数名として認識されないので mv: cannot stat 'savefigName': No such file or directory というエラーに繋がってしまったと思います。 これを変数名として認識させるコマンドやコードがあったりはするのでしょうか。
tttkkk

2022/06/17 09:19

本当にありがとうございます。 私の詰まっていましたところが全て解決いたしました。 ご丁寧に教えていただき、非常に理解を深めることができました。 jbpb0様をぜひともベストアンサーにさせていただきたいのですが、 このままですと出来ませんので、 回答の方に同様の内容を記載させていただけないでしょうか。 お手数をおかけしますが、よろしくお願いいたします。
guest

回答1

0

ベストアンサー

google driveをgoogle colabにマウントして、
Google Colaboratoryを便利に使うためのTIPSまとめ
の「Google Driveとの連携」に書かれてるように、「!mv」とか「!cp」とかでgoogle drive上のどこかに移動するかコピーするかしてみてください

投稿2022/07/29 07:10

jbpb0

総合スコア7651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問