使用python统计文件行数示例分享

以下是使用Python统计文件行数的完整攻略:

1. 判断文件类型

首先需要确定需要统计的文件类型,可以根据文件后缀名进行判断。如果只需要统计代码文件(如.py、.java、.cpp等),可以使用os模块的walk函数遍历文件夹,判断每个文件的后缀名是否符合要求。

import os

def walk_folder(folder_path):
    for dirpath, dirnames, filenames in os.walk(folder_path):
        for filename in filenames:
            if filename.endswith(".py") or filename.endswith(".java") or filename.endswith(".cpp"):
                file_path = os.path.abspath(os.path.join(dirpath, filename))
                count_line(file_path)

def count_line(file_path):
    with open(file_path, 'r', encoding='utf-8') as f:
        line_num = 0
        for line in f:
            if line.strip():
                line_num += 1
        print(f"{file_path}共{line_num}行代码")

以上代码中,使用os模块的walk函数遍历文件夹中的每一个文件,如果文件后缀名符合要求,则调用count_line函数统计文件行数。

2. 支持单文件统计

除了支持遍历文件夹进行统计外,还需要支持单个文件的统计。可以通过命令行参数的方式传递需要统计的文件路径,也可以通过input函数进行交互式输入。

import sys

def main():
    if len(sys.argv) > 1:
        # 读取命令行参数
        file_path = sys.argv[1]
        if not os.path.exists(file_path):
            print("文件不存在")
            return
        count_line(file_path)
    else:
        # 交互式输入
        while True:
            file_path = input("请输入文件路径:")
            if not os.path.exists(file_path):
                print("文件不存在")
                continue
            count_line(file_path)
            break

if __name__ == '__main__':
    main()

以上代码中,使用sys模块的argv列表读取命令行参数进行文件路径获取,如果没有命令行参数,则通过input函数进行交互式输入。

示例1:对文件夹进行遍历统计

假设我们有一个文件夹,里面包含了一些Python和Java代码文件,我们需要统计每个文件的行数。

$ tree test_folder
test_folder
├── java
│   └── HelloWorld.java
└── python
    ├── hello.py
    └── count.py

使用walk_folder函数遍历文件夹,统计文件行数。

import os

def walk_folder(folder_path):
    for dirpath, dirnames, filenames in os.walk(folder_path):
        for filename in filenames:
            if filename.endswith(".py") or filename.endswith(".java"):
                file_path = os.path.abspath(os.path.join(dirpath, filename))
                count_line(file_path)

def count_line(file_path):
    with open(file_path, 'r', encoding='utf-8') as f:
        line_num = 0
        for line in f:
            if line.strip():
                line_num += 1
        print(f"{file_path}共{line_num}行代码")

if __name__ == '__main__':
    walk_folder('test_folder')

输出结果:

/Users/test_folder/python/hello.py共4行代码
/Users/test_folder/python/count.py共13行代码
/Users/test_folder/java/HelloWorld.java共2行代码

示例2:单个文件交互式统计

假设我们需要手动输入统计的文件路径,可以执行以下代码:

import os

def count_line(file_path):
    with open(file_path, 'r', encoding='utf-8') as f:
        line_num = 0
        for line in f:
            if line.strip():
                line_num += 1
        print(f"{file_path}共{line_num}行代码")

if __name__ == '__main__':
    while True:
        file_path = input("请输入文件路径:")
        if not os.path.exists(file_path):
            print("文件不存在")
            continue
        count_line(file_path)
        break

输出结果:

请输入文件路径:test_folder/python/hello.py
test_folder/python/hello.py共4行代码

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用python统计文件行数示例分享 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • Python中给List添加元素的4种方法分享

    以下是详细讲解“Python中给List添加元素的4种方法分享”的完整攻略。 在Python中,列表是一种常用的数据类型,提供了多种方法添加元素。本文将介绍Python中给List添加素的4种方法,并提供两个示例说明。 添加元素 1. append() append()方法用于在列表的末尾添加一个元素。例如: lst = [1, 2, 3] lst.appe…

    python 2023年5月13日
    00
  • Python简单基础小程序的实例代码

    关于“Python简单基础小程序的实例代码”的完整攻略,这里我提供一个通用的步骤给大家参考: 1. 确定程序功能 在开始写代码之前,我们首先需要明确自己的程序要实现什么样的功能。比如,我们可以开发一个简单的BMI计算器,要求用户输入身高和体重,然后输出BMI的值和相应的评价(如过轻、正常、过重等等)。确定好程序功能之后,我们可以定义一些基本变量,比如身高和体…

    python 2023年5月19日
    00
  • Python实现的对一个数进行因式分解操作示例

    对一个数进行因式分解是数学中的一个重要问题,Python可以很方便地实现这个操作。本文将介绍Python实现对一个数进行因式分解完整攻略,包括两个示例说明。 1. 基本思路 对一个数进行因式分解的基本思路是,从2开始,不断地将这个数除以最小的质因数,直到这个数变成1为止。具体实现如下: def factorize(n): factors = [] i = 2…

    python 2023年5月14日
    00
  • Python 将json序列化后的字符串转换成字典(推荐)

    将json序列化后的字符串转换成字典是Python中常见的操作。这个过程可以使用Python内置的json模块来实现。下面是Python将json序列化后的字符串转换成字典的攻略。 1. 导入json模块 使用json模块的第一步是导入模块。Python标准库中的json模块提供了一组函数,用于将Python数据结构转换为JSON格式,并反转换回来。在Pyt…

    python 2023年6月3日
    00
  • 如何在Python中实现加权均方误差

    在Python中实现加权均方误差,可以按照以下步骤进行: 导入需要的库 首先,我们需要导入numpy库。因为加权均方误差的计算需要用到numpy的一些函数。 import numpy as np 编写加权均方误差计算函数 接下来,我们可以定义一个名为weighted_mse的函数,用于计算加权均方误差。函数参数包括: y_true:真实值,类型为一维nump…

    python-answer 2023年3月25日
    00
  • 利用matlab与Excel交互之单元格操作

    下面我来详细讲解“利用matlab与Excel交互之单元格操作”的完整实例教程。 1. 前置条件 在学习本教程前,需要了解以下基础知识: Matlab基础语法; Excel基本操作; Matlab与Excel交互的基本知识。 2. 准备工作 在使用Matlab与Excel交互之前,需要安装以下工具: Matlab软件; Excel软件; Matlab Exc…

    python 2023年5月13日
    00
  • python网络爬虫 Scrapy中selenium用法详解

    Python网络爬虫Scrapy中Selenium用法详解 在进行网站爬取时,Selenium是一种常见但也非常有用的工具。本文将详细介绍如何在Scrapy中使用Selenium进行网站爬取。我们将从Selenium安装开始,一步一步向您展示如何在Scrapy项目中使用Selenium。 安装Selenium 要使用Selenium,我们首先需要安装它。使用…

    python 2023年6月7日
    00
  • 七个Python必备的GUI库

    接下来我将为你详细介绍 “七个Python必备的GUI库”。 1. Tkinter Tkinter是Python标准库自带的图形用户界面(GUI)工具包,它提供了GUI应用所需要的几乎所有功能部件,如:按钮、文本、输入框、标签、复选框等。Tkinter易学易用,支持多平台操作系统,是Python编写GUI程序的首选库。 以下是一个简单的Tkinter GUI…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部