Python计算一个目录下所有文件(包括子目录中所有文件)指定的文件类型个数

 输入工程名计算一个工程项目中C++,Java,Python,GO语言的文件个数,并找出Python文件中最大文件的文件名

1、先读取文件地址,找到该文件夹

import os
import os.path
path = 'C:/python学习/Python作业/' + input("请输入项目名:")

2、给这四个文件类型个数赋初始值,并创建两个列表分别存入某文件类型的文件大小和文件名(分开存放用于更明白理解)

cppnum = 0
javanum = 0
pynum = 0
gonum = 0
list_size = []
list_name = []

3、计算这四种文件类型的个数(并将Python文件的名字和大小存入列表)

for parentdir, dirname, filenames in os.walk(path):
    for filename in filenames:
        if os.path.splitext(filename)[1] == '.cpp':
            cppnum = cppnum + 1
        if os.path.splitext(filename)[1] == '.java':
            javanum = javanum + 1
        if os.path.splitext(filename)[1] == '.py':
            pynum = pynum + 1
            filesize = os.path.getsize(os.path.join(parentdir,filename))
            list_size.append(filesize)
            list_name.append(filename)
        if os.path.splitext(filename)[1] == '.go':
            gonum = gonum + 1

4、转化存入的文件大小(自定义一个函数)

def getsizename(size):
    if (size > 1024*1024*1024.0):
        numstr = str(size/(1024*1024*1024.0))
        sizename = numstr[:(numstr.index('.')+3)]+'GB'
    elif (size > 1024*1024.0):
        numstr = str(size/(1024*1024.0))
        sizename = numstr[:(numstr.index('.')+3)]+'MB'
    elif (size > 1024.0):
        numstr = str(size/1024.0)
        sizename = numstr[:(numstr.index('.')+3)]+'KB'
    else:
        sizename = str(size) +'Bytes'
    return sizename

5、输出结果(输出最大文件名,可先找到最大文件在列表中的地址,使用该地址即可找到对应的文件名)

size = max(list_size)
s = getsizename(size)
name = list_name[list_size.index(max(list_size))]
print("C++文件有",cppnum,"个")
print("Java文件有",javanum,"个")
print("Python文件有",pynum,"个")
print("Go文件有",gonum,"个")
print("其中最大的文件大小是",s)
print("这个最大的文件名是",name)

 

你可能感兴趣的:(Python实际运用代码)