gpt4 book ai didi

python - 解析 git - 使用 python 的日志文件

转载 作者:太空狗 更新时间:2023-10-29 14:30:45 26 4
gpt4 key购买 nike

所以我需要解析这样的东西:

commit e397a6e988c05d6fd87ae904303ec0e17f4d79a2
Author: Name <email@email.com>
Date: Sat Jul 9 21:29:10 2011 +0400

commit message

1 files changed, 21 insertions(+), 11 deletions(-)

并获取作者姓名和插入和删除的数量。

我的名字是这样的:

re.findall(r"Author: (.+) <",gitLog)

对于数字,我有这个:

re.findall(r" (\d+) insertions\S+, (\d+) deletions",gitLog)

但我想用一个正则表达式获得名称、插入和删除的元组列表。

我试着做类似的事情

re.findall(r"Author: (.+) <.+ (\d+) insertions\S+, (\d+) deletions",gitLog,re.DOTALL)

但它什么也没返回...

那么我的错误是什么?正则表达式应该是什么样子?

更新:wRAR 是正确的,但是不知何故,当我读取文件并尝试解析它时,我将整个文件作为一个名称,然后是最后一次插入和删除,因此它匹配整个文件而不是单个提交... [.+]获取整个文件但不是提交的一部分...

最佳答案

如果您有权访问 repo 而不是 git log 的一些文本转储,请为自己省去解析的麻烦并生成不同的日志输出:

git log --pretty="%an" --numstat

将产生以下形式的输出:

Author Name

lines_inserted lines_deleted modified_file

你甚至不需要正则表达式。如果你想保持正则表达式,你需要在插入后匹配 (+) 否则它根本不会匹配并且不会捕获数字。

关于python - 解析 git - 使用 python 的日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6683067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com