Python計算一個目錄下所有檔案(包括子目錄中所有檔案)指定的檔案型別個數
阿新 • • 發佈:2019-01-26
輸入工程名計算一個工程專案中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)