为了账号安全,请及时绑定邮箱和手机立即绑定

索引错误:列表索引超出范围创建和打开 xlsx

索引错误:列表索引超出范围创建和打开 xlsx

四季花海 2021-12-26 15:38:41
我想在 python 中创建一个程序,该程序创建一个 xlsx 文件,其中每个字母都有一个工作表。我想读取 150 个文件,这些文件的数字和名称分别为“:”,例如“03005:stackoverflow”在每一行,并将每个数字及其名称放在以名称的第一个字母开头的工作表中。当我执行我的程序时,它给了我这个错误,我不知道如何修复它。并非每次我执行它时,它都会在同一次交互中失败。
查看完整描述

1 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

你有


if (words[1])[0] is None:


在您的代码中,然后将 的值words[1][0]与某些字符进行比较。


你的意思是写


if (words[1])[0] is not None:


因此,如果这些值不是 NoneType 它将转到内部 if 并将值与字符进行比较


更新


当然这不能解决您的问题,就好像列表单词没有元素 [1] 或单词 [1][0] 没有元素一样,它会给您索引错误。有很多方法可以查看具有该索引的列表是否存在。但是,对于你一个最简单的是改变if (words[1])[0] is None:与try:和写except:的if语句之后。例如:


if (words[1])[0] is None:

                if (words[1])[0] == "A":

                        sheet = e.get_sheet("A")

                        sheet.write(arrayPositions[0],0,(words[1])[:-1])

                        sheet.write(arrayPositions[0],1,words[0])

                        arrayPositions[0]=arrayPositions[0]+1

                **all other ifs


try:

    if (words[1])[0] == "A":

        sheet = e.get_sheet("A")

        sheet.write(arrayPositions[0],0,(words[1])[:-1])

        sheet.write(arrayPositions[0],1,words[0])

        arrayPositions[0]=arrayPositions[0]+1

    ** All other if statements

except:

    pass


查看完整回答
反对 回复 2021-12-26
  • 1 回答
  • 0 关注
  • 188 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信