アプリ版:「スタンプのみでお礼する」機能のリリースについて

Pythonで画像の読み込みがうまくいきません。
Google Drive 上のPythonでコードを作成しています。Drive上にtsvファイルをアップロードし、マウントして読み込んだのですがエラーが起きてしまいます。きちんと読み込めていないのか、コードにミスがあるのか、わからないので教えていただきたいです。
tsvファイルには、train_00000.pngから999まで入っています。

以下、エラーが出たコードになります。

for fname in labels["file_name"]:
path = "./train/" + fname
img = io.imread(path)  ←(エラー箇所)

エラー内容
FileNotFoundError: No such file: '/content/train/train_00000.png'

質問者からの補足コメント

  • 以下のようにしてファイルを読み込みました。

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

    labels = pd.read_csv("/content/drive/My Drive/train_master.tsv", delimiter= "\t")

    読み込んだ後、labelsでデータは見ることができます。
    これで原因がわかりますでしょうか。

    No.1の回答に寄せられた補足コメントです。 補足日時:2020/08/04 22:46

A 回答 (2件)

> これで原因がわかりますでしょうか。



特殊な環境なんでわかりませんね。
大体、pandasとか使ってるでしょ?使ってるライブラリ、何をインポートしてるのか分からんとどうにも言えません。
多分他にもskimage.ioとかも使ってるのかな。結局「予想」でしか語れないわけですけれども。

それと、参照すべき*.pngが一体どこにあるのか。これもGoogle Drive上にあるのか。これが多分一番大事で、ええと、Google Colabか(これに付いても最初から書くべきですが。)、で走らせてるPythonのカレントディレクトリから見てどこにあるのか、ってのが重要です。
実験してみると、

import os

して

os.getcwd()

すれば現在位置を知らせてくれるわけですが、恐らく/contentにいるんじゃないか。
そして、/content直下に/trainフォルダが本当にあるんですか?プログラムミスを探すより、pngの写真を置いてあるディレクトリへのパスが正確に記述されてるか調べる方が先でしょうね。

ちなみに、こっちで実験する限り、Google Driveにtrainフォルダを作れば、

for fname in labels:
 path = "./drive/My Drive/train/" + fname
 img = io.imread(path)

が正しい記述になりますね。
    • good
    • 0
この回答へのお礼

for fname in labels:
 path = "./drive/My Drive/train/" + fname
 img = io.imread(path)

これでうまくいきました。
丁寧に教えていただき、ありがとうございました。

お礼日時:2020/08/05 00:27

その情報だけじゃ良く分かりませんね。



エラー自体は「ファイル(/content/train/train_00000.png)が見つからなかった」って言ってるだけですから。
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!