马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 hhjdsd 于 2020-4-6 18:44 编辑
求助,不知道哪错了import os
file_path = os.walk('.')
file_name = []
file_extension_name1 = []
file_extension_name2 = []
for each in file_path[2]:#出错的地方
file_name.append(each)
for each in file_name:
(name,extension_name) = each.split('.')
file_extension_name1.append(extension_name)
for each in file_extension_name1:
if each not in file_extension_name2:
file_extension_name2.append(each)
for each in file_extension_name2:
extension_count = file_extension_name1.count(each)
print('该文件夹下共有类型为【%s】的文件%d个' % (each,extension_count))
Traceback (most recent call last):
File "D:\编程练习\课后作业(文件系统,第30讲,动动手第0题).py", line 6, in <module>
for each in file_path[2]:
TypeError: 'generator' object is not subscriptable
file_path为以下内容:('.', [], ['ascll值对照表.png', 'test.py', 'test.txt', 'test1.txt', 'test2.txt', '回答问题(输入地板大小、方块数量的两个因数,求方块数量).py', '字符串.png', '字符串的方法及注释(1).png', '字符串的方法及注释(2).png', '密码安全检测.py', '小游戏(迫害).py', '文件的打开模式和文件对象方法.png', '课后作业(字典,第25讲,动动手第0题).py', '课后作业(字典,第26讲,动动手第0题).py', '课后作业(字符串:格式化).py', '课后作业(序列!序列!).py', '课后作业(文件系统,第30讲,动动手第0题).py', '课后作业(文件,第29讲,动动手第0题).py', '课后作业(文件,第29讲,动动手第1题).py', '课后作业(文件,第29讲,动动手第2题).py', '课后作业(文件,第29讲,动动手第3题).py', '课后作业(文件,第29讲,动动手第4题).py', '课后作业(递归23,24讲第0题).py', '课后作业(递归23,24讲第1题).py', '课后作业(递归23,24讲第2题).py', '课后作业(递归23,24讲第3题).py', '随便玩玩.py', '集合方法.png'])
本帖最后由 qiuyouzhi 于 2020-4-6 18:45 编辑
os.walk产生的是一个生成器,而不是列表
你可以写一个循环,把os.walk的内容放进那个列表里
比如: import os
file_path = os.walk('.'):
file_name = []
file_extension_name1 = []
file_extension_name2 = []
for each in list(file_path[2]):#出错的地方
file_name.append(each)
for each in file_name:
(name,extension_name) = each.split('.')
file_extension_name1.append(extension_name)
for each in file_extension_name1:
if each not in file_extension_name2:
file_extension_name2.append(each)
for each in file_extension_name2:
extension_count = file_extension_name1.count(each)
print('该文件夹下共有类型为【%s】的文件%d个' % (each,extension_count))
|