统计某文件夹下的所有csv文件的行数(多进程),代码如下
#-*- coding: utf-8 -*- # 统计某文件夹下的所有csv文件的行数(多进程) import os import multiprocessing import csv def getline(path, mylist): reader = csv.reader(open(path, "r")) # 读取文件 lines = 0 for item in reader: # 读取每一行 lines += 1 print("self pid", os.getpid(), "lines", lines) mylist.append(lines) # 将csv文件的行数添加到行数列表 if __name__ == "__main__": path = "/home/test4" # 存放所有csv文件的文件夹 filelist = os.listdir(path) # 存储了所有的文件名 processlist = [] # 进程列表 mylist = multiprocessing.Manager().list() # 多进程共享list,共享内存。存放所有csv文件的行数的List for filename in filelist: newpath = path + "/" + filename # 绝对路径 p = multiprocessing.Process(target=getline, args=(newpath, mylist)) # 开启进程 p.start() # 进程开始干活 processlist.append(p) # 加入进程列表 for mythd in processlist: # 遍历每一个进程 mythd.join() # 等待所有进程干完活 print(mylist) total = 0 #统计行数列表总和 total = sum(mylist) print(total) print("完成")