Le contenu de cet article concerne la fonction (exemple) de l'implémentation par Python de l'outil de comptage de lignes de code. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Nous souhaitons souvent compter le nombre de lignes de code dans un projet, mais si nous voulons avoir une fonction statistique plus complète, ce n'est peut-être pas si simple. Aujourd'hui, nous allons y jeter un œil. comment utiliser Python pour implémenter un outil de comptage de lignes de code.
Idée : récupérez d'abord tous les fichiers, puis comptez le nombre de lignes de code dans chaque fichier, et enfin ajoutez le nombre de lignes.
Fonction implémentée :
Comptez chacun Le nombre de lignes dans le fichier ;
compte le nombre total de lignes ;
compte la durée d'exécution
prend en charge la spécification des types de fichiers statistiques et exclut les types de fichiers qui ne le font pas ; souhaitez être compté ;
Comptez récursivement le nombre de lignes de fichiers dans le dossier, y compris les sous-fichiers ;
excluez les lignes vides ; >
# coding=utf-8 import os import time basedir = '/root/script' filelists = [] # 指定想要统计的文件类型 whitelist = ['php', 'py'] #遍历文件, 递归遍历文件夹中的所有 def getFile(basedir): global filelists for parent,dirnames,filenames in os.walk(basedir): #for dirname in dirnames: # getFile(os.path.join(parent,dirname)) #递归 for filename in filenames: ext = filename.split('.')[-1] #只统计指定的文件类型,略过一些log和cache文件 if ext in whitelist: filelists.append(os.path.join(parent,filename)) #统计一个文件的行数 def countLine(fname): count = 0 for file_line in open(fname).xreadlines(): if file_line != '' and file_line != '\n': #过滤掉空行 count += 1 print fname + '----' , count return count if __name__ == '__main__' : startTime = time.clock() getFile(basedir) totalline = 0 for filelist in filelists: totalline = totalline + countLine(filelist) print 'total lines:',totalline print 'Done! Cost Time: %0.2f second' % (time.clock() - startTime)
[root@pythontab script]# python countCodeLine.py /root/script/test/gametest.php---- 16 /root/script/smtp.php---- 284 /root/script/gametest.php---- 16 /root/script/countCodeLine.py---- 33 /root/script/sendmail.php---- 17 /root/script/test/gametest.php---- 16 total lines: 382 Done! Cost Time: 0.00 second [root@pythontab script]#
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!