Comment utiliser Python pour implémenter l'introduction de l'outil de comptage de lignes de code

高洛峰
Libérer: 2017-03-16 16:34:01
original
1492 Les gens l'ont consulté

On souhaite souvent compter le nombre de lignes de code dans un projet, mais si l'on veut avoir une fonction statistique plus complète, ce n'est peut-être pas si simple. Aujourd'hui, nous allons voir 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 ; veulent être comptés ;

RécursionCompter le nombre de lignes de fichiers dans un dossier, y compris les sous-fichiers

Exclure 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

Résultat :

[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

Ne compte que les fichiers php et python, ce qui est très pratique.

En fait, vous pouvez également apporter des améliorations sur cette base, comme exclure les lignes de commentaires , etc.

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:php.cn
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