小编nes*_*esv的帖子

尝试浏览大型列表时的Python IndexError

我有一个大约200 000多个对象的列表,每个对象代表一个文件(但实际上没有文件的内容,只有完整的路径名和日期).

我正在编写的程序会复制这些文件的任何子集,具体取决于用户提供的日期范围.我首先创建源目录中所有文件的列表(使用glob模块),创建我的文件表示类的实例并将该实例添加到列表中,如下所示:

for f in glob.glob(srcdir + "/*.txt"):
    LOG_FILES.append(LogFile(f))
Run Code Online (Sandbox Code Playgroud)

现在,为了快速复制文件和清除代码块,我删除了不适合日期范围的LogFile对象.

for i in xrange(0, len(LOG_FILES)):
    if LOG_FILES[i].DATE < from_date or LOG_FILES[i].DATE > to_date:
        del(LOG_FILES[i])
Run Code Online (Sandbox Code Playgroud)

之后,我可以复制列表中剩下的文件:

for logfile in LOG_FILES:
    os.copy(logfile.PATH, destdir)
Run Code Online (Sandbox Code Playgroud)

问题出现在for i in xrange...示例中:当值i达到63792 时,我会抛出一个IndexError .

IndexError: list index out of range.
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

编辑非常感谢您的快速回复!现在我想起来,这对我来说是一个愚蠢的疏忽.再次,谢谢大家.:)

python

3
推荐指数
1
解决办法
656
查看次数

标签 统计

python ×1