鱼C论坛

 找回密码
 立即注册
查看: 2734|回复: 6

[已解决]Python3第30课课后练习题求高手解惑

[复制链接]
发表于 2016-9-21 22:42:57 | 显示全部楼层 |阅读模式
6鱼币
import os

all_files = os.listdir(os.curdir) # 问题一,当这样写的时候一切都正常,但当os.listdir(os.curdir('D:\\')的时候会出现下面第一行括号里没‘文件夹’三个字的情况——
(该文件夹下共有类型为【】的文件 28 个
该文件夹下共有类型为【.docx】的文件 4 个
该文件夹下共有类型为【.mp3】的文件 6 个
该文件夹下共有类型为【.txt】的文件 1 个
该文件夹下共有类型为【.BIN】的文件 1 个)

type_dict = dict()

for each_file in all_files:
    if os.path.isdir(each_file):         #问题二,这里的.isdir()是指是否存在且是一个目录中的‘目录’是什么意思?是文件的意思吗?
        type_dict.setdefault('文件夹', 0)
        type_dict['文件夹'] += 1
    else:
        ext = os.path.splitext(each_file)[1]   
        type_dict.setdefault(ext, 0)
        type_dict[ext] += 1

for each_type in type_dict.keys():     #问题三,这里的.key()可以将字典里的key值收集成一个元组还是列表吗?
    print('该文件夹下共有类型为【%s】的文件 %d 个' % (each_type, type_dict[each_type]))


==============
我用win7学的是Python3,求大神解惑,多谢了。。
最佳答案
2016-9-21 22:42:58
问题一:括号中什么都没有,可能是你D盘下有28个文件夹
问题二:isdir()函数用来判断是否存在且是一个目录,目录的意思的文件夹喽
问题三:
  1. dict1={1:'one',2:'two'}
  2. >>> dict1.keys()
  3. dict_keys([1, 2])
  4. >>> l=dict1.keys()
  5. >>> type(l)
  6. <class 'dict_keys'>
复制代码


.keys() 将字典的键值 收集成一个<class 'dict_keys'>这样的类型
希望对你有帮助

最佳答案

查看完整内容

问题一:括号中什么都没有,可能是你D盘下有28个文件夹 问题二:isdir()函数用来判断是否存在且是一个目录,目录的意思的文件夹喽 问题三: .keys() 将字典的键值 收集成一个这样的类型 希望对你有帮助
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-9-21 22:42:58 | 显示全部楼层    本楼为最佳答案   
问题一:括号中什么都没有,可能是你D盘下有28个文件夹
问题二:isdir()函数用来判断是否存在且是一个目录,目录的意思的文件夹喽
问题三:
  1. dict1={1:'one',2:'two'}
  2. >>> dict1.keys()
  3. dict_keys([1, 2])
  4. >>> l=dict1.keys()
  5. >>> type(l)
  6. <class 'dict_keys'>
复制代码


.keys() 将字典的键值 收集成一个<class 'dict_keys'>这样的类型
希望对你有帮助
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-9-23 17:04:44 | 显示全部楼层
菜鸟回复:仅作参考
问题一:出现类型为【】的文件28个,有可能是系统识别不了的文件类型
问题二:举个例子,目录:'E:\\A'  文件:'E:\\test.txt'
问题三:列表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-9-23 18:26:51 | 显示全部楼层
lww_whoami 发表于 2016-9-23 17:04
菜鸟回复:仅作参考
问题一:出现类型为【】的文件28个,有可能是系统识别不了的文件类型
问题二:举个例 ...

问题是os.listdir(os.curdir('D:\\')为什么识别不了,而os.listdir(os.curdir) 却完全没有问题,而且当我要搜集D盘的信息时怎么办呢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-9-23 19:26:31 | 显示全部楼层
出现类型为【】的文件28个,有可能是系统识别不了的文件类型
举个例子,目录:'E:\\answer'  文件:'E:\\test.txt'
是列表啊!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-11-9 09:12:41 | 显示全部楼层
>>> os.listdir('D:')
['$360Section', '$RECYCLE.BIN', '360Downloads', 'acad.err', 'defrag.dat', 'Document', 'Documents', 'download',  'Favorites', 'FFOutput', 'GPASetup',, 'kankan', 'lastools', 'messages.xml', 'MSOCache', 'MyDownloads',  'opt', 'pagefile.sys', 'Program Files', 'Program Files (x86)', 'QLDownload', 'software', 'StormMedia', 'System Volume Information', 'tools', 'Users', '~$\xb0\xd7\xc6\xa4\xca\xe9.doc', '\xc6\xe4\xcb\xfb', '\xd0\xc2\xbd\xa8\xce\xc4\xbc\xfe\xbc\xd0', '\xd1\xb8\xc0\xd7\xcf\xc2\xd4\xd8']
这样就可以了,不知道你为什么那么复杂
>>>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-11-21 17:06:22 | 显示全部楼层
os.curdir不是函数,所以不能加()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-7 14:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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