【问题标题】:Dealing with Diffstat output on the terminal [closed]处理终端上的 Diffstat 输出[关闭]
【发布时间】:2021-11-10 02:35:58
【问题描述】:

这是我在终端上执行 diffstat 时的输出。将数字 133 和 85 放入 CSV 文件的两列中的最佳方法是什么?谢谢。

README.md  |   88 +++++++++++++++++++++--------------------
home.html  |only
index.html |  130 ++++++++++++++++++++++++++++++++++++++++---------------------
libraries  |only
4 files changed, 133 insertions(+), 85 deletions(-)

【问题讨论】:

    标签: python scripting


    【解决方案1】:

    假设您将差异写入文件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
    

    【讨论】:

    • 我喜欢你的正则表达式。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2015-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多