Maison > développement back-end > Tutoriel Python > Python implémente la fonction de l'outil de comptage de lignes de code (exemple)

Python implémente la fonction de l'outil de comptage de lignes de code (exemple)

不言
Libérer: 2018-11-23 17:12:11
avant
2075 Les gens l'ont consulté

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)
Copier après la connexion
Statistiques sur les fichiers php et python, très pratique.

En fait, vous pouvez également apporter des améliorations sur cette base, comme exclure les lignes de commentaires, etc.
[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]#
Copier après la connexion

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!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal