@chisakka

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

flickrをpythonで

解決したいこと

flickrから画像を持ってこようとしたらエラーになりました。
何が原因でしょうか。

#コマンドライン引数の 1 番目の値を取得
のところでエラーが出てしまいました。

発生している問題・エラー

import flickrapi
from urllib.request import urlretrieve
from pprint import pprint
import os, time, sys

#APIキーの情報

key = "-----"
secret = "-----"
wait_time = 1

#コマンドライン引数の 1 番目の値を取得
animalname = sys.argv[1]

#画像を保存するディレクトリを指定
savedir = "./" + animalname

出ているエラーメッセージを入力

 keyword = sys.argv[1]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
0 likes

1Answer

このスクリプトを実行する際に、コマンドライン引数が不足しているように見えます。

sys.argvはlistで、スクリプト実行時の引数が格納されています。

例えばこんなスクリプトを、

main.py
import sys

print(f"{type(sys.argv)}")
print(f"{sys.argv}")

コマンドライン引数を与えながら実行するとこんな結果が得られます。

% python main.py arg1 arg2
<class 'list'>
['main.py', 'arg1', 'arg2']  # sys.argv[0] にはスクリプト名が入ります

sys.argv[1]が無いというIndexErrorから、スクリプトの実行時にコマンドライン引数を渡す必要がありそうです。

0Like

Comments

  1. @chisakka

    Questioner

    ありがとうございます。
    解決しました!

Your answer might help someone💌