0

それは、ユーザーがインデックス番号 (0-11) でリスト内の項目を選択できるようにするという、私がやりたいことに非常に近づいています。

数値、つまり 5 を入力すると、" You selected [5] as origin point"..great! と出力されますが、インデックス番号ではなく、プロットの名前を表示したいと思います。名前は列 2 にあります (インデックス列が 0 としてカウントされる場合)。整数を求めていることはわかっていますが、簡単に修正できることを願っています。

その他の問題は、18 を入力すると が出力されます"You selected [18]..."が、18 がありません。

def fmp_sel():
    DataPlotLoc= file('MonPlotDb.csv', 'rU')
    fmpList = csv.reader(DataPlotLoc, dialect=csv.excel_tab)
    next(fmpList, None)
    for item in enumerate(fmpList):
        print "[%d] %s" % (item)

    while True:
        try:
            in_Sel = raw_input(('''Choose a plot from list, or 'q' to quit: '''))

            if in_Sel == 'q':
                print 'Quit?'
                conf = raw_input('Really? (y or n)...')
                if conf == 'y':
                    print 'Seeya!'
                    break
                else:
                    continue

            in_Sel = DataPlotLoc[int(in_Sel) + 1] # The +1 is to align to correct index
            print 'You selected', in_Sel, 'as origin point'
            break

        except (ValueError, IndexError):
            print 'Error: Try again'
4

1 に答える 1