2017-06-10 9 views
-1

のうちリストインデックスIは、2つの画像間の類似性を知りたいが、私はどのように私は私の問題を整理することができます。このエラーにsys.argv [1]。 IndexError:範囲

if __name__ == '__main__': 
    img1 = sys.argv[0] 
    img2 = sys.argv[1] 

    # Create image objects 
    image1 = Image.open(img1) 
    image2 = Image.open(img2) 

    # Test pixel by pixel 
    get_image_pixel_similarity(img1, img2) 

sys.argv[1]. IndexError: list index out of range

を取得していますか?あなたが入力し

+0

あなたのスクリプトを起動するために入力したコマンドは何ですか? – jadsq

+0

スクリプトをどのように実行しますか?また、sys.argv [0]はスクリプトの名前です。 sys.argv [1]とsys.argv [2]が必要です。 – phd

答えて

-1

Thのコマンドは次のようにする必要があります。

python script.py img1 img2 

次に、あなたが使用する必要があります。

img1 = sys.argv[1] 
img2 = sys.argv[2] 

私はあなたが1行でこれを行うお勧め:

img1, img2 = sys.argv[1:2] 

argvがありますスクリプト名で始まるリスト。あなたのようなあなたのプログラムを起動する必要が

+0

'1 'が範囲外の場合、' 1: 'は範囲外です... – jadsq

+0

' 'img1、img3 = sys.argv [1:2] sys.argv'。 –

1

./myscript.py path/to/img1 path/to/img2 

sys.argv[0]があなたのpythonファイルの名前を格納するため、また、あなたの引数は、sys.argv[1]sys.argv[2]になります。また

、CMDライン引数を使用している場合、私はそうのように、少しのエラーチェックを行うことをお勧めします:

if __name__ == '__main__': 
    if len(sys.argv) < 3: 
     print('Insufficient arguments') 
     exit() 

    img1 = sys.argv[1] 
    img2 = sys.argv[2] 
    .... 
+1

'python ./myscript.py path/to/img1 path/to/img2'を呼び出すこともできます。これは全く同じ結果をもたらします。 – jadsq

+0

彼らは同じディレクトリにいると仮定します。 –

+0

sys.argv [1]も範囲外です – user7442628

関連する問題