python 字典里在对应的键添加值 提示键不存在 求助
虽然不知道你为什么这样写,但是我猜测你的目的应该是为了得到当前目录下的文件类型的个数?
把你标记出错的那一步改成
currt_dirlist_dict+=1 就行了
至于报错的原因是当读取到的currt_dirlist第一个不是文件夹时比如abc.txt的时候进入else,这时候currt_dirlist_dict并没有'文件夹'这个key 别发图片的。 本帖最后由 Cool-Fella 于 2017-10-19 22:18 编辑
新手·ing 发表于 2017-10-19 22:11
别发图片的。
import os
currt_dirlist=os.listdir()
currt_dirlist_dict=dict()
for each in currt_dirlist:
if os.path.isdir(each):
currt_dirlist_dict.setdefault('文件夹',0)
currt_dirlist_dict['文件夹']+=1
else:
extension=os.path.splitext(each)
currt_dirlist_dict.setdefault(extension,0)
currt_dirlist_dict['文件夹']+=1 #问题出现在这一步
for each_key in currt_dirlist_dict:
print('该文件下的类型为【%s】的文件%d个'%(each_key,currt_dirlist_dict))
出现问题的那一步,不应该写“文件夹”啊,应该是"extension"才对。
但是报错的原因跟楼上说的正好相反,因为用setdefault( )方法获取键值的时候,如果在字典中找不到对应的键时,会自动添加。 铁棍阿童木 发表于 2017-10-19 23:18
出现问题的那一步,不应该写“文件夹”啊,应该是"extension"才对。
但是报错的原因跟楼上说的正好相反 ...
对 你说的没错
我是故意那样写的 因为我在测试程序的时候 我想试试那样的写法能不能添加值
按道理来说 不应该报错 铁棍阿童木 发表于 2017-10-19 23:18
出现问题的那一步,不应该写“文件夹”啊,应该是"extension"才对。
但是报错的原因跟楼上说的正好相反 ...
我明白了
有可能 第一个不是 文件夹 所以那个时候 文件夹 还没创建 所以在下面添加对应的值得时候 会报错 看来还有很多东西要学习啊! 看来还有很多东西要学习啊!
页:
[1]