无法从列表中选择值

时间:2013-09-20 00:07:04

标签: python list

我有这段代码:

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)不起作用,但我似乎无法找出为什么我的生活。我错过了什么吗?

2 个答案:

答案 0 :(得分:2)

在您的代码中,此部分无效,因为您没有保存转换结果,并且修改不会就地发生:

int(DisableNumber)

请改为尝试:

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

请注意,input()返回一个必须显式转换为int的字符串,如果它包含您打算用作数字的整数值 - 例如,作为数组索引。现在DisableNumber是一个整数,这一行将起作用:

FileToDisable = ModList[DisableNumber]

答案 1 :(得分:0)

int(DisableNumber)替换为DisableNumber = int(DisableNumber)