【python随笔】之【多线程并发统计多个cvs文件行数】

import threading
import csv
import os


class MyThreading(threading.Thread):
    def __init__(self, path):
        super().__init__()
        # 路径
        self.path = path
        # 行数
        self.line = -1

    def run(self):
        # 读取文件
        reader = csv.reader(open(self.path, 'r'))
        count_lines = 0
        for item in reader:
            count_lines += 1
        self.line = count_lines


if __name__ == '__main__':
    dir_path = r'00test'  # 要统计的所有文件的目录
    file_list = os.listdir(dir_path)  # 所有文件列表
    threading_list = []  # 线程列表

    # 遍历所有文件列表
    for file_name in file_list:
        # 每个文件的路径
        file_path = dir_path + '\\' + file_name
        # 创建读取这个文件行数的线程
        thread = MyThreading(file_path)
        thread.start()  # 线程开始统计
        threading_list.append(thread)  # 将此线程加入线程列表
    # 等待
    for th in threading_list:
        th.join()
    # 将统计个数装入列表
    line_list = []
    for th in threading_list:
        line_list.append(th.line)
    # 打印统计列表
    print(line_list)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值