如何读取代码行数

使用 CLOC (Count Line of Code)

前提条件:1. 预装有perl

2. 下载CLOC. http://cloc.sourceforge.net/

解压安装包,得到cloc-version.pl

打开命令行,定位到解压文件的文件夹,然后敲入命令

perl cloc-version.pl YourProject.tar.gz

输出例子:

     594 text files.
     126 unique files.
      14 files ignored.

http://cloc.sourceforge.net v 1.62  T=14.82 s (7.6 files/s, 925.6 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Swift                           67           2780           1119           6843
Objective C                      7            265            192           1308
JSON                            27              0              0            697
HTML                             1             11              0            233
C/C++ Header                    10             53             96            125
-------------------------------------------------------------------------------
SUM:                           112           3109           1407           9206
-------------------------------------------------------------------------------

CLOC支持的文件格式:

ABAP                       (abap)
ActionScript               (as)
Ada                        (ada, adb, ads, pad)
ADSO/IDSM                  (adso)
AMPLE                      (ample, dofile, startup)
Ant                        (build.xml)
Apex Trigger               (trigger)
Arduino Sketch             (ino, pde)
ASP                        (asa, asp)
ASP.Net                    (asax, ascx, asmx, aspx, config, master, sitemap, webinfo)
Assembly                   (asm, S, s)
AutoHotkey                 (ahk)
awk                        (awk)
Bourne Again Shell         (bash)
Bourne Shell               (sh)
C                          (c, ec, pgc)
C Shell                    (csh, tcsh)
C#                         (cs)
C++                        (C, c++, cc, cpp, cxx, pcc)
C/C++ Header               (H, h, hh, hpp)
CCS                        (ccs)
Clojure                    (clj)
ClojureScript              (cljs)
CMake                      (cmake, CMakeLists.txt)
COBOL                      (CBL, cbl, cob, COB)
CoffeeScript               (coffee)
ColdFusion                 (cfm)
ColdFusion CFScript        (cfc)
CSS                        (css)
CUDA                       (cu)
Cython                     (pyx)
D                          (d)
DAL                        (da)
Dart                       (dart)
DOS Batch                  (bat, BAT, btm, BTM, cmd, CMD)
DTD                        (dtd)
ECPP                       (ecpp)
Erlang                     (erl, hrl)
Expect                     (exp)
F#                         (fs, fsi)
Focus                      (focexec)
Fortran 77                 (F, f, F77, f77, pfo)
Fortran 90                 (F90, f90)
Fortran 95                 (F95, f95)
Go                         (go)
Grails                     (gsp)
Groovy                     (gant, groovy)
Haml                       (haml)
Handlebars                 (handlebars, hbs)
Harbour                    (hb)
Haskell                    (hs, lhs)
HLSL                       (cg, cginc, shader)
HTML                       (htm, html)
IDL                        (idl, pro)
InstallShield              (ism)
Java                       (java)
Javascript                 (js)
JavaServer Faces           (jsf, xhtml)
JCL                        (jcl)
JSON                       (json)
JSP                        (jsp, jspf)
Kermit                     (ksc)
Korn Shell                 (ksh)
Kotlin                     (kt)
LESS                       (less)
lex                        (l)
Lisp                       (el, jl, lisp, lsp, sc)
Lisp/OpenCL                (cl)
LiveLink OScript           (oscript)
Lua                        (lua)
m4                         (ac, m4)
make                       (am, gnumakefile, Gnumakefile, Makefile, makefile)
MATLAB                     (m)
Maven                      (pom, pom.xml)
Modula3                    (i3, ig, m3, mg)
MSBuild script             (csproj, vbproj, vcproj, wdproj, wixproj)
MUMPS                      (mps, m)
Mustache                   (mustache)
MXML                       (mxml)
NAnt script                (build)
NASTRAN DMAP               (dmap)
Objective C                (m)
Objective C++              (mm)
OCaml                      (ml, mli, mll, mly)
Oracle Forms               (fmt)
Oracle Reports             (rex)
Pascal                     (dpr, p, pas)
Pascal/Puppet              (pp)
Patran Command Language    (pcl, ses)
Perl                       (perl, PL, pl, plh, plx, pm)
PHP                        (php, php3, php4, php5)
PHP/Pascal                 (inc)
Pig Latin                  (pig)
PL/I                       (pl1)
PowerShell                 (ps1)
Python                     (py)
QML                        (qml)
R                          (R)
Racket                     (rkt, rktl, sch, scm, scrbl, ss)
Razor                      (cshtml)
Rexx                       (rexx)
RobotFramework             (tsv)
Ruby                       (rake, rb)
Ruby HTML                  (rhtml)
Rust                       (rs)
SASS                       (sass, scss)
Scala                      (scala)
sed                        (sed)
SKILL                      (il)
SKILL++                    (ils)
Smarty                     (smarty, tpl)
Softbridge Basic           (sbl, SBL)
SQL                        (psql, sql, SQL)
SQL Data                   (data.sql)
SQL Stored Procedure       (spc.sql, spoc.sql, sproc.sql, udf.sql)
Swift                      (swift)
Tcl/Tk                     (itk, tcl, tk)
Teamcenter met             (met)
Teamcenter mth             (mth)
TypeScript                 (ts)
Unity-Prefab               (mat, prefab)
Vala                       (vala)
Vala Header                (vapi)
Velocity Template Language (vm)
Verilog-SystemVerilog      (sv, svh, v)
VHDL                       (vhd, VHD, VHDL, vhdl)
vim script                 (vim)
Visual Basic               (bas, cls, ctl, dsr, frm, vb, VB, vba, VBA, vbs, VBS)
Visualforce Component      (component)
Visualforce Page           (page)
Windows Message File       (mc)
Windows Module Definition  (def)
Windows Resource File      (rc, rc2)
WiX include                (wxi)
WiX source                 (wxs)
WiX string localization    (wxl)
XAML                       (xaml)
xBase                      (prg)
xBase Header               (ch)
XML                        (XML, xml)
XQuery                     (xq, xquery)
XSD                        (xsd, XSD)
XSLT                       (xsl, XSL, xslt, XSLT)
yacc                       (y)
YAML                       (yaml, yml)
时间: 2024-10-26 12:37:28

如何读取代码行数的相关文章

C++统计代码注释行数 & 有效代码行数 & 代码注释公共行 & 函数个数

问题来源,在14年的暑假的一次小项目当中遇到了一个这样的问题,要求统计C++代码的注释行数,有效代码行数,代码注释公共行数,以及函数个数. 下面稍微解释一下问题, 1)注释行数:指有注释的行,包括有代码和注释的公共行(如:3,4,15,22...) 2)有效代码行:指有代码的行,包括有代码和注释的公共行(如:1,4,11,15,25....) 3)代码注释公共行:指又有代码又有注释的行(如:4,15...) 4)函数个数:这个不用说明了吧. 以下为注释情况展示代码: 1 #include <st

如何统计代码行数

如何统计代码行数 linux下提供了很多实用工具,甚至在安卓上,都有移植的busybox包含这些工具. 根据KISS理念,这些工具的功能很单一.但这些工具组合起来,就可以很方面的统计代码量了. 统计代码行数 流程为:首先使用find命令找到所有后缀名符合规则的源代码文件,之后使用wc命令统计行数.文件数可能过多,为防止出错使用xargs命令分割参数列表,最后得到的结果可以使用sort排序 统计所有c源代码行数的命令:find -name *.c | xargs wc -l |sort -r.结果

Linux下统计代码行数

使用wc统计代码行数 最近写了一些代码,想统计一下代码的行数,在eclipse中好像没这功能,网上搜了一下才发现原来Linux有一个统计文件行数的命令wc.使用wc可以打印出每个文件和总文件的行数.字数和字节数,如果没有指定文件,则会读取标准输入(一般是终端)做统计.格式如下: Usage: wc [OPTION]... [FILE]... -c, --bytes, --chars print the byte counts -l, --lines print the newline count

Java关于条件判断练习--统计一个src文件下的所有.java文件内的代码行数(注释行、空白行不统计在内)

要求:统计一个src文件下的所有.java文件内的代码行数(注释行.空白行不统计在内) 分析:先封装一个静态方法用于统计确定的.java文件的有效代码行数.使用字符缓冲流读取文件,首先判断是否是块注释开头,接着判断是否是块注释结尾,再判断是否是单行注释或者空白行,若都不是则是有效代码,统计行数+1. 对于文件夹路径,采用递归的方法判断子条目是文件还是文件夹,是文件就调用静态统计方法.源代码: public class CalculateRow { public static void main(

统计python代码行数

addhosts项目已接近尾声,我很想知道我们写了多少行代码. 一.需求 统计源码目录下py文件的代码行数. 二.脚本分析 获取指定目录下所有的.py文件,对文件进行遍历: 读取每个文件,对文件内容进行遍历,过滤掉空行和注释: 三.实现及结果 #coding:utf-8 import os class StatLines(object):     def __init__(self,path):         self.path = path     def stat_lines(self):

Python学习教程:如何用python统计代码行数

Python学习教程:如何用python统计代码行数 改良后的代码可以对python和C系列的代码实行行数计算,包括代码.空行和注释行,用re抓取注释,传入一个目录自动对其下的文件进行读取计算 流程 首先判断传入参数是否为文件夹,不是则打印出提示,否则继续(无返回),获得目录后,yongos.listdir对路径下文件进行遍历,其中也包含文件夹,再次判断是否为文件夹,是的话则递归调用此函数,否则开始执行行数统计,这里用os.path.join将路径与文件名进行拼接,方便之后直接传给函数,逻辑很简

Visual Studio统计代码行数

Visual Studio统计代码行数 按[Ctrl+Shift+F]弹出查找窗口(不统计以#号开头.以/开头的代码和空行) 1.输入  :b*[^:b#/]+.*$ 2.选择使用正则表达式 3.查找文件类型,*.cs多种类型用分号(;)隔开 点击查找全部(查找结果如下)

VS统计代码行数 CTRL+SHIFT+F

1.CTRL+SHIFT+F (Find in files),打开查找功能(如果打不开查看本文最后)2. 勾选 使用:正则表达式,3. 搜索内容: ^:b*[^:b#/]+.*$ #开头和/开头或者空行都不计入代码量. ^:b*[^:b#/*]+.*$ *开头和#开头和/开头或者空行都不计入代码量. 4. 最后一行就是代码行数了. 匹配行:    匹配文件:    合计搜索文件: ----------------------------------------------------------

给定一个源代码文件(.cs, .java),输出该文件的总行数、空行数、注释行数、代码行数

public class ComputeSourceLine { public static void main(String[] args) throws FileNotFoundException { // TODO Auto-generated method stub // 定义相关变量 int totalLine = 0; int emptyLine = 0; int commentLine = 0; int codeLine = 0; // 大家重点了解 Scanner类(网络搜索)