每日代碼統計,代碼統計
最近工作不是很忙,在學習《python核心編程3》,給自己定了一個小目標,每天編碼1000行,由於我一邊看書,一邊敲例子,都是在demo目錄下面進行的,
所以寫了個監聽demo目錄的指令碼,用來統計每天的編碼行數,實現思路就是,遍曆demo下的所有檔案,找到今日建立的檔案,將編碼行數累加,下面是代碼,
歡迎指正!
# -*- coding: utf-8 -*-"""author:ruiqldate:2017/9/4version:1.0指定一個目錄,針對當日的編碼情況,做行數統計"""import os, sysimport timefrom datetime import datetimeEXPECT_ROWS = 1000 #預期完成行數SCAN_DIR = '/Users/tuyoo/pythondemo/demo' #掃描路徑def statisics_rows(file_list): row_count = 0 for file in file_list: print '#',file.name row_count += len(file.readlines()) file.close() print '今日完成編碼行數:%s, 目標行數:%s, 完成度:%0.2f%%' % (row_count, EXPECT_ROWS, row_count*1.0/EXPECT_ROWS*100)def scan_dir_list_today_create(scan_dir): ''' 掃描目錄,得到今日建立的檔案清單 :param scan_dir: :return: ''' result = [] if not os.path.isdir(scan_dir): raise Exception _recur_dir_get_file(scan_dir, result) return resultdef _recur_dir_get_file(sub_dir, result): for parent, dirnames, filenames in os.walk(sub_dir): for file in filenames: print parent+'/'+file file = _is_today_create(parent+'/'+file) if file: result.append(file)def _is_today_create(file): create_time = os.path.getctime(file) f_create_time = datetime.fromtimestamp(create_time) now = datetime.now() if (now - f_create_time).days == 0: return open(file) return Falsestatisics_rows(scan_dir_list_today_create(SCAN_DIR))