-4

私のコマンドライン引数:

python SearchString.py 10 旧姓

引数 1 が長さと一致しません。それをどのように処理すればよいですか?

エラー: ファイル "SearchString.py"、30 行目、string_search search = temp[fieldindex] IndexError: リスト インデックスが範囲外です

#!usr/bin/python
import sys

def string_search():
    '''
    This function search a string in a file through index and gives the result.

    :returns: none
    :return type: none 
    :author:XYZ   

    '''
    if len(sys.argv) != 3:
        print "Enter Two Arguments Only"
        sys.exit()

    stringsrch = sys.argv[2]
    found = False
    file_name = open("passwd", "r")

    if sys.argv[1].isdigit():
        fieldindex = int(sys.argv[1])-1
    else:
       print "Enter Integer in 1st Argument"
    sys.exit()
    #fieldindex = int(sys.argv[1])-1

   for store_file in file_name:
        temp = store_file.split(":")
        search = temp[fieldindex]

        if stringsrch in search:
            print store_file
            found = True
    if not found:
        print "No String "

string_search()
4

1 に答える 1

0

コードは使い方次第だと思います。 search = temp[fieldindex]. コードから、fieldindex は9であるため、確認する必要がありlen(temp) > 9ます。または、あなたが言ったようなエラーが発生します。

于 2013-10-11T05:29:49.167 に答える