2

私はこのコードを持っています:

import os
import pprint 
print("Hello")
ModList = os.listdir("C:/Users/Dat/AppData/Roaming/.minecraft/mods")
print ("The current mods you have installed are:\n")
pprint.pprint(ModList)
DisableNumber = input("To disable a mod, type it's number in the list.\n")
int (DisableNumber)
FileToDisable = ModList[DisableNumber]
print (FileToDisable)

ディレクトリ内のファイルをリストし、リストを印刷し、ユーザーに番号を入力するように求め、リスト内のそのインデックスでファイル名を変更することになっています。ただし、これを実行すると、エラーが発生します。

Traceback (most recent call last):
  File "C:\Users\Dat\Desktop\Python\ModDisabler.py", line 9, in <module>
FileToDisable = ModList[DisableNumber]
TypeError: list indices must be integers, not str

このエラーの原因は何ですか? int(DisableNumber) が機能していないためだと思いますが、私の人生の理由を見つけることができないようです。何か不足していますか?

4

2 に答える 2

2

コードでは、変換の結果を保存せず、変更がインプレースで行われないため、この部分は機能していません。

int(DisableNumber)

代わりにこれを試してください:

DisableNumber = int(input("To disable a mod, type it's number in the list.\n"))

は、配列インデックスなどの数値として使用する整数値が含まれている場合、input()明示的に に変換する必要がある文字列を返すことに注意してください。intこれDisableNumberが整数になったので、次の行が機能します。

FileToDisable = ModList[DisableNumber]
于 2013-09-20T00:09:03.713 に答える
0

int(DisableNumber)と置き換えますDisableNumber = int(DisableNumber)

于 2013-09-20T00:09:16.250 に答える