使用gitpython在文件中添加和删除的行数
Number of lines added and deleted in files using gitpython
如何get/extract添加和删除行数?
(就像我们使用 git diff --numstat 一样)。
repo_ = Repo('git-repo-path')
git_ = repo_.git
log_ = g.diff('--numstat','HEAD~1')
print(log_)
将整个输出(行 added/deleted 和文件名)打印为单个字符串。是否可以修改或更改此输出格式以提取有用信息?
Output format: num(added) num(deleted) file-name
对于所有修改过的文件。
如果我没理解错的话,您想从 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 往往是只写代码,很难调试。但是,对于像这样提取小零件,还是很有帮助的。
如何get/extract添加和删除行数? (就像我们使用 git diff --numstat 一样)。
repo_ = Repo('git-repo-path')
git_ = repo_.git
log_ = g.diff('--numstat','HEAD~1')
print(log_)
将整个输出(行 added/deleted 和文件名)打印为单个字符串。是否可以修改或更改此输出格式以提取有用信息?
Output format: num(added) num(deleted) file-name
对于所有修改过的文件。
如果我没理解错的话,您想从 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 往往是只写代码,很难调试。但是,对于像这样提取小零件,还是很有帮助的。