Python实现“各类型文件统计”功能
不多说了,直接看代码吧!
import os
path = 'e:/Download/'
kzm = []
kzmTemp = set()
kzmTemp2 = []
dict = {}
for root,dirs,files in os.walk(path):
for file in files:
ext = os.path.splitext(file)[1][1:]
kzm.append(ext)
#遍历目录path,这里用到的splitext()方法是将文件名和扩展名分开,后面的[1]代表取扩展名([0]的话就代表取文件名了),由于splitext()方法取扩展名的时候,是连分隔文件名和扩展名的‘.’一起取的,所以[1:]的作用的是去掉扩展名前面点
for i in range(len(kzm)):
kzm[i] = kzm[i].lower()
#全部变小写,避免例如exe和EXE系统会当做两种文件来处理的问题
for i in range(len(kzm)):
kzmTemp.add(kzm[i])
#将List转换为Set,目的是为了将Set中的所有元素作为Dict中的Key,因为Set会自动剔除重复的元素
kzmTemp2 = [i for i in kzmTemp]
for i in range(len(kzmTemp2)):
dict[kzmTemp2[i]] = 0
#这里构造了一个叫做dict的Dict(好绕嘴),并将所有的扩展名都作为dict的key,给所有的key都赋值为0
for i in range(len(kzm)):
dict[kzm[i]] += 1
#遍历数组kzm,统计各扩展名出现的次数,然后将这个数字赋值给dict中相应的key
print('统计的目录为:%s' % path)
for key in dict:
print('%s: %s' % (key,dict[key]))
代码一点也不优美,来回转换了N次数据类型,for了N次……‘
不过可以解决问题。知识有限,只能用一些“入门级”的方法去解决问题。
相关文档:
在Stack Overflow 上看到学习Python 的一个方法是用Python 破解The Python Challenge。但我喜欢用Ruby,谁管得着呢^_^
0. 入门关很简单。
p 2**38
1. 破解一段话,观察图片很容易发现解码表把字母表循环右移两位。
riddle = "g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl ......
今晚试了一下Python自带的单元测试,主要是参考了Python单元测试框架
的有关资料,折腾了一个小时左右,总算在Eric 4通过的几个简单的单元测试。在这里将所得的相关知识记录下来,方便将来查询。
python自带的单元测试模块是unittest,从2.1以后为标准库的一部分
1 ......
以前也写过一些关于 vim 环境变量的内容,使用 vim 和 python ,每一段时间后都会有新的体会,所以要不断总结了.
vim 针对 python 的万能补全: vim 当前进程需要找到相应补全模块库所在位置,此是就和 python 的path环境变量相关。
python 代码运行时: 对于import 的模块也需要确定它的具体位置,python 解释器会到当前路 ......
如果Python源文件中出现中文,需要在源文件第一行加上类似如下的代码页指令:
# -*- coding:gbk -*-
如果程序的运行结果中包含中文,可以在程序开头包含如下代码,就可以正确显示中文结果:
import sys
reload(sys)
sys.setdefaultencoding('gbk')
......