处理终端上的 Diffstat 输出
Dealing with Diffstat output on the terminal
这是我在终端上执行 diffstat 时的输出。将数字 133 和 85 分为两列到 CSV 文件中的最佳方法是什么?谢谢
README.md | 88 +++++++++++++++++++++--------------------
home.html |only
index.html | 130 ++++++++++++++++++++++++++++++++++++++++---------------------
libraries |only
4 files changed, 133 insertions(+), 85 deletions(-)
假设您将差异写入文件 diff.txt
,如下所示:
README.md | 88 +++++++++++++++++++++--------------------
home.html |only
index.html | 130 ++++++++++++++++++++++++++++++++++++++++---------------------
libraries |only
4 files changed, 133 insertions(+), 85 deletions(-)
并且有一个 .csv
文件包含这些 headers:
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
这是我在终端上执行 diffstat 时的输出。将数字 133 和 85 分为两列到 CSV 文件中的最佳方法是什么?谢谢
README.md | 88 +++++++++++++++++++++--------------------
home.html |only
index.html | 130 ++++++++++++++++++++++++++++++++++++++++---------------------
libraries |only
4 files changed, 133 insertions(+), 85 deletions(-)
假设您将差异写入文件 diff.txt
,如下所示:
README.md | 88 +++++++++++++++++++++--------------------
home.html |only
index.html | 130 ++++++++++++++++++++++++++++++++++++++++---------------------
libraries |only
4 files changed, 133 insertions(+), 85 deletions(-)
并且有一个 .csv
文件包含这些 headers:
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