字典去重 YYDS
然后再写入excel 表 yyds
#!/bin/env python3
from git.repo import Repo
import os
import pandas as pds
path = "/home/labstation/workqueue/sw"
url = "git@10.0.128.128"
date = [str(x) for x in range(202307, 202308)]
datefmt = "%Y%m"
counts = 0
AUTHORS = {}
AUTHORS_UNIQU = {}
DATE = {}
DATE_UNIQU = {}
for proj in os.scandir(path):
if not os.access(path + "/" + proj.name + "/.git", os.F_OK):
continue
repo = Repo(path + "/" + proj.name)
remoteUrl = repo.git.execute(["git", "remote", "-v"])
if type(remoteUrl) is str:
remoteUrl = map(lambda x: x.strip("\t"), remoteUrl.split("\n"))
for checkUrl in remoteUrl:
if checkUrl.find(url) > 0:
continue
res = repo.git.execute(["git", "branch", "-r"])
if type(res) is str and len(res) != 0:
branches = filter(
lambda x: not x.startswith("origin/HEAD"),
map(lambda x: x.strip(" "), res.split("\n")),
)
for it_branch in branches:
for it in repo.iter_commits(it_branch):
if it.authored_datetime.strftime(datefmt) in date:
AUTHORS[str(it)] = it.author.name
DATE[str(it)] = (
it_branch,
proj.name,
it.author.name,
it.authored_datetime.strftime(datefmt),
)
for _it in AUTHORS:
AUTHORS_UNIQU[AUTHORS[_it]] = 0
for _it in AUTHORS_UNIQU:
for _its in AUTHORS:
if _it == AUTHORS[_its]:
AUTHORS_UNIQU[_it] += 1
for _it in DATE:
DATE_UNIQU[DATE[_it]] = 0
for _it in DATE_UNIQU:
for _its in DATE:
if _it == DATE[_its]:
DATE_UNIQU[_it] += 1
TotalExcel = {"姓名": [], "次数": []}
for _it in AUTHORS_UNIQU:
TotalExcel["姓名"].append(_it)
TotalExcel["次数"].append(AUTHORS_UNIQU[_it])
Excel = {"分支": [], "仓库名称": [], "提交者": [], "提交日期": [], "提交次数": []}
for it in DATE_UNIQU:
Excel["分支"].append(it[0])
Excel["仓库名称"].append(it[1])
Excel["提交者"].append(it[2])
Excel["提交日期"].append(it[3])
Excel["提交次数"].append(DATE_UNIQU[it])
writer = pds.ExcelWriter(date[0] + "~" + date[len(date) - 1] + ".xlsx")
excekWrute2 = pds.DataFrame(TotalExcel)
excekWrute2.to_excel(writer, sheet_name="统计总表")
execlWrite1 = pds.DataFrame(Excel)
execlWrite1.to_excel(writer, sheet_name="各仓库统计")
writer.close()
保存成excel 表格输出
YYDS … …