鱼C论坛

 找回密码
 立即注册
查看: 9048|回复: 9

使用列表提示IndexError: list index out of range

[复制链接]
发表于 2016-3-6 10:56:14 | 显示全部楼层 |阅读模式
2鱼币
第030讲课后习题动动手的第1个题目,要求统计当前目录下每个文件类型的文件数,我的代码如下:
  1. import os
  2. os.chdir(r'E:\杂项')
  3. a=b=c=d=e=0
  4. list1=os.listdir('.')#包含此目录下的所有文件名的一个列表
  5. for i in range(len(list1)):
  6.           list2=list1[i].split('.')#打印出list2的内容就是['1-理赔申请书-空白表', 'pdf']
  7.           if list2[1] == 'pdf':#此时判断list2[1]这个元素是不是pdf,然后使a+1,为啥报错了呢?
  8.                     a+=1
  9.           if list2[1] == 'jpg':
  10.                     b+=1
  11.           if list2[1] == 'doc':
  12.                     c+=1
  13.           if list2[1] == 'zip':
  14.                     d+=1
  15.           if list2[1] == 'xls':
  16.                     e+=1
  17. print('该文件夹下共有类型为【.PDF】的文件%d个' % (a))
  18. print('该文件夹下共有类型为【.JPG】的文件%d个' % (b))
  19. print('该文件夹下共有类型为【.DOC】的文件%d个' % (c))
  20. print('该文件夹下共有类型为【.ZIP】的文件%d个' % (d))
  21. print('该文件夹下共有类型为【.XLS】的文件%d个' % (e))
复制代码

最佳答案

查看完整内容

当迭代器迭代到"新建文件夹" 的时候, 以"."分割文件名的返回结果列表没有[1]下标
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-3-6 10:56:15 | 显示全部楼层
安以陌 发表于 2016-3-6 12:28
>>> os.chdir(r'E:\杂项')
>>> list1=os.listdir('.')
>>> list1

当迭代器迭代到"新建文件夹" 的时候, 以"."分割文件名的返回结果列表没有[1]下标
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-3-6 11:09:09 | 显示全部楼层
说明你有文件没有扩展名
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-3-6 11:24:27 | 显示全部楼层
hldh214 发表于 2016-3-6 11:09
说明你有文件没有扩展名

什么意思啊,可以说的详细点吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-3-6 12:00:10 | 显示全部楼层
安以陌 发表于 2016-3-6 11:24
什么意思啊,可以说的详细点吗?

第六行代码, 就是吧文件名以"."为分隔符分开, 如果有文件没有"."的话, 则后续代码的[1]下标将会报错
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-3-6 12:06:54 | 显示全部楼层
hldh214 发表于 2016-3-6 12:00
第六行代码, 就是吧文件名以"."为分隔符分开, 如果有文件没有"."的话, 则后续代码的[1]下标将会报错

但是list2【1】返回的是pdf,没有错啊。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-3-6 12:24:26 | 显示全部楼层
安以陌 发表于 2016-3-6 12:06
但是list2【1】返回的是pdf,没有错啊。

你把list1贴上来
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-3-6 12:28:36 | 显示全部楼层

>>> os.chdir(r'E:\杂项')
>>> list1=os.listdir('.')
>>> list1
['1-理赔申请书-空白表.pdf', '2-员工-理赔申请书-示例.jpg', '20146510825273.xls', '2222.docx', '2222.pdf', '3-子女-理赔申请书-示例.jpg', '4-员工商保服务手册(2012-2013).doc', '6月10日信息核对.zip', 'ctc_onu配置指导.docx', 'DrCom.Cracked.By.Baby', 'Gamesys_V1.1-Gamersky', 'Interchange _2_Chapter_3_ce.pdf', 'kaixxle.apk.td', 'kaixxle.apk.td.cfg', 'PHOTOSHOP资源站.url', 'QQ部落官网.url', 'spirent.docx', 'T420T520_WIN7x64.exe.td', 'T420T520_WIN7x64.exe.td.cfg', '光电信息工程05104124.docx', '创艺简标宋.TTF', '外文翻译模板 2014(1).doc', '外文翻译模板 2014.doc',  '新建文件夹', '毕业学生确认表.doc', '毕设表格模板.doc','英文文献翻译1.docx']
>>>
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-3-6 12:29:12 | 显示全部楼层
看看,顺便学点知识
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-3-6 14:11:38 | 显示全部楼层
hldh214 发表于 2016-3-6 13:57
当迭代器迭代到"新建文件夹" 的时候, 以"."分割文件名的返回结果列表没有[1]下标

明白了,谢谢指教。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-20 01:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表