|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
0、编写一个程序,统计当前目录下每个文件类型的文件数
———————————————————————————————————————————————————————————————
import os
x=input("请输入文件夹路径:")
print ("输出文件夹路径:",x)
os.chdir(x)
print ("列举当前目录下的文件名:",os.listdir(path='.'))
a=os.listdir(os.curdir)#相当于os.listdir(path='.'),表示当前文件夹下的所有文件,这样写更准确
print ("再次列举当前目录下的文件名:",a)
b=dict()#定义一个空字典,用来填充,各类型文件的数量
for e in a:#a是一个数组,定义 e 是 a 中的数值
if os.path.isdir(e):
# os.path.isdir 用来判断 e 是否是文件夹,os.path.isfile() 用来判断 e 是否是文件
b.setdefault('文件夹', 0)#定义b的默认值,如果键不存在,则添加此键。跟get 类似
b['文件夹'] += 1#文件夹键值加1
else:#否则,e不是文件夹,而是文件的时候
f = os.path.splitext(e)[1]
#os.path.splitext 分离文件的文件名和扩展名,并将其保存在一个元组中,针对单个文件
#f等于这个元组中的第二个元素,就是f 是扩展名
b.setdefault(f,0)#重新定义一个新的默认值,如果没有就创建一个;如果有,就直接将其设为默认值即可
b[f]+=1#每过一个文件,都需要重新指定一下默认值,然后将默认值加1
print ("打印一下每一个文件分离后的样子,每一个文件都是一个元组:")
print (os.path.splitext(e))
print ("打印一下文件夹中所有文件类型的数量:",b)#可以看到,b是一个字典
for c in b.keys():#c是b的键值
print("该文件夹下共有类型为 【%s】 的文件 【%d】 个" % (c,b[c]))
#注意这种写法,%s %d , 后边的 % (c,b[c]) ,%前边没有逗号,后边的数据都有小括号
———————————————————————————————————————————————————————————————
输出结果:
请输入文件夹路径:D:\python\s
输出文件夹路径: D:\python\s
列举当前目录下的文件名: ['01动动手.docx', 'a.txt', 'b.txt', '新建文件夹']
再次列举当前目录下的文件名: ['01动动手.docx', 'a.txt', 'b.txt', '新建文件夹']
打印一下每一个文件分离后的样子,每一个文件都是一个元组:
('01动动手', '.docx')
打印一下每一个文件分离后的样子,每一个文件都是一个元组:
('a', '.txt')
打印一下每一个文件分离后的样子,每一个文件都是一个元组:
('b', '.txt')
打印一下文件夹中所有文件类型的数量: {'.docx': 1, '.txt': 2, '文件夹': 1}
该文件夹下共有类型为 【.docx】 的文件 【1】 个
该文件夹下共有类型为 【.txt】 的文件 【2】 个
该文件夹下共有类型为 【文件夹】 的文件 【1】 个 |
|