鱼C论坛

 找回密码
 立即注册
查看: 1441|回复: 4

[已解决]课后题30

[复制链接]
发表于 2019-11-21 16:57:52 | 显示全部楼层 |阅读模式
5鱼币
0. 编写一个程序,统计当前目录下每个文件类型的文件数。

代码清单

import os

all_files = os.listdir(os.curdir) # 使用os.curdir表示当前目录更标准
type_dict = dict()

for each_file in all_files:
    if os.path.isdir(each_file):
        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():
    print('该文件夹下共有类型为【%s】的文件 %d 个' % (each_type, type_dict[each_type]))


红色部分如何理解,有什么作用
最佳答案
2019-11-21 16:57:53
本帖最后由 zm_selina 于 2019-11-22 08:07 编辑

os.path.splitext() 方法用于将完整文件的文件名(例如name.txt)分离成文件名和扩展名组成的元组(例如name.txt分离成元组(name,.txt),[0]在这个元组里是name, [1]就是  .txt))

ext = os.path.splitext(each_file)[1]  这里是把每个文件的扩展名做为字符串赋值给变量ext。

最佳答案

查看完整内容

os.path.splitext() 方法用于将完整文件的文件名(例如name.txt)分离成文件名和扩展名组成的元组(例如name.txt分离成元组(name,.txt),[0]在这个元组里是name, [1]就是 .txt)) ext = os.path.splitext(each_file)[1] 这里是把每个文件的扩展名做为字符串赋值给变量ext。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-11-21 16:57:53 | 显示全部楼层    本楼为最佳答案   
本帖最后由 zm_selina 于 2019-11-22 08:07 编辑

os.path.splitext() 方法用于将完整文件的文件名(例如name.txt)分离成文件名和扩展名组成的元组(例如name.txt分离成元组(name,.txt),[0]在这个元组里是name, [1]就是  .txt))

ext = os.path.splitext(each_file)[1]  这里是把每个文件的扩展名做为字符串赋值给变量ext。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-11-21 17:29:39 | 显示全部楼层
os.path.splitext 切完后是列表  取列表的索引为1的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-11-21 18:31:26 | 显示全部楼层
本帖最后由 zltzlt 于 2019-11-24 15:37 编辑

[1] 是列表索引操作。os.path.splitext() 方法用于将文件名分离成不包括后缀的文件名与后缀(例如 os.path.splitext('demo.py') 会得到 ['demo', '.py']),[1] 是取列表中第二个元素,即扩展名。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-11-22 06:48:27 | 显示全部楼层
os.path.splitext 分离文件名与扩展名,返回(f_name, f_extension)元组
再加上[1] ,就是返回扩展名。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 10:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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