如何获取/提取添加和删除的行数? (就像我们使用git diff --numstat一样)。
repo_ = Repo('git-repo-path')
git_ = repo_.git
log_ = g.diff('--numstat','HEAD~1')
print(log_)
将整个输出(添加/删除的行和文件名)打印为单个字符串。可以修改或更改此输出格式以提取有用信息吗?
Output format: num(added) num(deleted) file-name
修改所有文件。
答案 0 :(得分:1)
如果我理解正确,您想从log_
变量中提取数据,然后重新格式化并打印它?如果是这种情况,那么我认为最简单的解决方法是使用正则表达式:
import re
for line in log_.split('\n'):
m = re.match(r"(\d+)\s+(\d+)\s+(.+)", line)
if m:
print("{}: rows added {}, rows deleted {}".format(m[3], m[1], m[2]))
确切的输出,您当然可以在匹配m
中获得数据时以任何方式修改。掌握正则表达式可能需要一段时间,但它对小脚本非常有帮助。
但是,请注意,reg exps往往是只写代码,可能很难调试。但是,为了提取这样的小部件,它非常有用。