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