统计各类文件size——字典运用

log文件记录了云服务器上当天上传的文件信息
其中第一列是文件名,第二列是文件大小

请编写一个程序,统计出不同类型的文件的大小总和
比如:
jpeg 9988999
json 324324
png 2423233

log文件内容如下:
f20180111014341/i_51a7hC3W.jpeg 169472 FrI
f20180111014341/j_R0Hpl4EG.json 1036 For
f20180111020739/i_0TDKs0rD.jpeg 169472 FrI
f20180111020739/j_JFO6xiir.json 1040 FmU
f20180111090619/i_1BwNksbL.jpg 49634 FtX
f20180111090619/i_3BKlsRaZ.jpg 30152 FoW
f20180111090619/i_5XboXSKh.jpg 40238 Fl8

log ="""
f20180111014341/i_51a7hC3W.jpeg	169472	FrI	
f20180111014341/j_R0Hpl4EG.json	1036	For
f20180111020739/i_0TDKs0rD.jpeg	169472	FrI	
f20180111020739/j_JFO6xiir.json	1040	FmU
f20180111090619/i_1BwNksbL.jpg	49634	FtX
f20180111090619/i_3BKlsRaZ.jpg	30152	FoW
f20180111090619/i_5XboXSKh.jpg	40238	Fl8
"""
log_dict = {}       # 定义空字典,用来存储文件扩展名和大小
# 把原始记录切割成一行行,用splitlines()方法,输出的是list
for line in log.splitlines():
    if line.count('.') != 1:        # 把首尾两行空行跳过,因为其它行都有.号,空行没有
        continue
    # print(line)

    file_name =line.split()[0].strip()      # 取出文件名,str类型
    file_type = file_name.split('.')[1]     # 从文件名中取出文件扩展名
    # print("文件名称:", file_type)         # 调试用
    size = int(line.split()[1].strip())     # 取出文件大小,转换为int类型
    # print("文件大小:", size)             # 调试用

    if file_type not in log_dict.keys():       # 注意这里不需for循环遍历字典,dict.keys()功能会检查所有的key
        log_dict[file_type] = size             # 如果键不在log_dict字典里,则把键和对应的值加入字典
    else:
        log_dict[file_type] += size            # 如果键在字典里,则只需把值跟原有的值相加

print(log_dict)         # 直接输出为字典格式

# 以下代码为输出字符串格式
out_put = str(log_dict).strip('{').strip('}')
out_put = out_put.replace(',', '\n')
print(out_put)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值