下面是我在终端上执行diffstat时的输出。把数字133和85分成两列放到CSV文件中,最好的方法是什么?谢谢。
README.md | 88 +++++++++++++++++++++--------------------
home.html |only
index.html | 130 ++++++++++++++++++++++++++++++++++++++++---------------------
libraries |only
4 files changed, 133 insertions(+), 85 deletions(-)
假设您将diff写入文件diff.txt
:
README.md | 88 +++++++++++++++++++++--------------------
home.html |only
index.html | 130 ++++++++++++++++++++++++++++++++++++++++---------------------
libraries |only
4 files changed, 133 insertions(+), 85 deletions(-)
并有一个.csv
文件与这些头:
insertions,deletions
那么这个可以工作:
import re, csv
s = None
with open("diff.txt", mode="r") as diff_file:
s = diff_file.readlines().pop()
regex = r"(?P<insertions>d*) insertions(+), (?P<deletions>d*) deletions.*"
pattern = re.compile(regex)
match = pattern.search(s)
with open("diffs.csv", mode="a", newline="") as diffs_csv:
fieldnames = ['insertions', 'deletions']
writer = csv.DictWriter(diffs_csv, fieldnames=fieldnames)
writer.writerow(match.groupdict())
在我的机器上:
➜ diffstat ls
diffs.csv diff.txt main.py
➜ diffstat cat diffs.csv
insertions,deletions
➜ diffstat cat diff.txt
README.md | 88 +++++++++++++++++++++--------------------
home.html |only
index.html | 130 ++++++++++++++++++++++++++++++++++++++++---------------------
libraries |only
4 files changed, 133 insertions(+), 85 deletions(-)
➜ diffstat python main.py
➜ diffstat cat diffs.csv
insertions,deletions
133,85
您可以创建diff.txt
文件并像这样运行脚本:
git diff --stat > diff.txt & python main.py