Python 索引器:列表索引超出范围

Python 索引器:列表索引超出范围,python,windows,permissions,python-idle,Python,Windows,Permissions,Python Idle,这部分代码在学校有效,但在我家无效。我正在使用一个简单的文本文件,其中包含不同的值。我知道序数从0开始,但它仍然给我这个错误。我已经研究过了,但仍然没有答案。它可以链接到我得到的这个错误窗口吗 “无法更新最近的文件列表:[Errno 13]权限被拒绝: “C:\Users\Ben\.idlerc\recent files.lst” 请帮忙 我使用的是3.3.2版 下面是我正在使用的文本文件(prod_file.txt): 尝试使用admin运行python。 如果它仍然不起作用,可能是你的pyt

这部分代码在学校有效,但在我家无效。我正在使用一个简单的文本文件,其中包含不同的值。我知道序数从0开始,但它仍然给我这个错误。我已经研究过了,但仍然没有答案。它可以链接到我得到的这个错误窗口吗

“无法更新最近的文件列表:[Errno 13]权限被拒绝: “C:\Users\Ben\.idlerc\recent files.lst”

请帮忙 我使用的是3.3.2版 下面是我正在使用的文本文件(prod_file.txt):


尝试使用admin运行python。
如果它仍然不起作用,可能是你的python版本与学校的不一样。

我试着在我的计算机上运行你的算法,结果很好。我相信“拒绝许可”错误可能是原因。您是否尝试将recent-files.lst移动到另一个文件夹(用于备份)并让IDLE创建一个新文件夹?icacls C:\Users\Ben\.idlerc\recent files.lst命令的输出是什么,但是,如果输入文件中的某一行缺少字段,则仍会引发相同的错误
IndexError
。您发布的数据没有缺少的字段,您的代码对我来说运行时没有错误。您是否确定样本数据完整且与您使用的数据完全相同。如果您发布了异常和回溯,也可能会有所帮助。AFAICT权限错误与此无关。为了确保此问题与算法本身无关,您可以尝试使用:/python.exe从命令行直接运行它
products = {} 
fi=open("prod_file.txt", "r") 
for line in fi:
        L = line.rstrip().split(":")
        products[L[0]] = {"desc" : L[1], "price" : L[2], "stock" : int(L[3]), "reorder" : int(L[4]), "target" : int(L[5])} 
fi.close() 
93126793:Knife:1:456:100:500
69584930:Pear:0.25:300:100:900
96865460:AAA Battery 10 Pack:10:508:100:150
68488550:Flip Phone:99.99:12:50:100
45637285:Apple:0.5:255:100:1100
12546732:Banana:0.4:432:100:1000
55993647:Plate:1.99:46:100:170
76038280:Fork:1:546:100:500
14054310:Phone:70.50:5:50:70
25226393:Laptop:40:0:50:100
07165122:Firework:27.5:456:100:200
13566135:AA Battery 10 Pack:13:0:100:200
28963264:Spork:1:555:100:200
06359492:Spoon:1:4656:100:400
15025630:Bowl:1.99:45:100:150