吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 866|回复: 10
收起左侧

[Python 原创] 去除.gitignore文件中的重复,空行和注释

[复制链接]
hrh123 发表于 2023-7-17 09:34

相信大家用Git进行版本控制都会为.gitignore文件发过愁吧,像我就去GitHub官方的库https://github.com/github/gitignore去下载.可这就出现一个问题,比如,我按照我的需求,对应将Python,Vim,JetBrains,C和C++的内容筛选后复制到我的.gitignore文件里,这时我的.gitignore文件已经有将近900行,有不少注释,空行,以及一些重复的内容,真是让强迫症无语,还平白增加仓库体积,于是就写了个简单的程序来应对(封装成类主要是为了有其他相同需求的文件使用此程序时更方便些).

class Cleaner:
    def __init__(self, filename):
        self.filename = filename

    def clean(self):
        with open(self.filename, "r", encoding="utf-8") as f:
            seen = set()
            result = []
            for line in f:
                line = line.strip()
                if not line or line.startswith("#"):
                    continue
                if line not in seen:
                    result.append(line)
                    seen.add(line)

        with open(self.filename, "w", encoding="utf-8") as f:
            for line in result:
                f.write(line + "\n")

# 调用示例
# cleaner = Cleaner(".gitignore")
# cleaner.clean()

免费评分

参与人数 3吾爱币 +7 热心值 +3 收起 理由
再见babay + 1 + 1 感谢分享
884069349 + 1 + 1 热心回复!
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

流泪的小白 发表于 2023-7-17 09:51
感谢分享,强迫症表示感谢
suifeng6518 发表于 2023-7-17 10:11
bhleo 发表于 2023-7-17 10:37
Vvvvvoid 发表于 2023-7-17 10:45
.gitignore 咋会有 900行啊
有一个快捷的命令可以去重去空
cat .gitignore | sort | uniq > .gitignore_new
Paulwalkera 发表于 2023-7-17 11:16
可以可以 python胶水语言处理这里很占优势
 楼主| hrh123 发表于 2023-7-17 12:17
Vvvvvoid 发表于 2023-7-17 10:45
.gitignore 咋会有 900行啊
有一个快捷的命令可以去重去空
cat .gitignore | sort | uniq > .gitignore_n ...

就是有900多行,是把那个仓库里的一些对应需求的给复制进去,当然有一些不是我本人提交的,到最后没去重复,空行和注释前确实有900行
 楼主| hrh123 发表于 2023-7-17 12:30
本帖最后由 hrh123 于 2023-7-17 12:32 编辑
Vvvvvoid 发表于 2023-7-17 10:45
.gitignore 咋会有 900行啊
有一个快捷的命令可以去重去空
cat .gitignore | sort | uniq > .gitignore_n ...

给你看下我仓库本来的gitignore 1.png
1.png
lucklys 发表于 2023-7-17 14:44
gitignore不是过滤提交文件的吗,搞这么多行..........
 楼主| hrh123 发表于 2023-7-17 14:48
lucklys 发表于 2023-7-17 14:44
gitignore不是过滤提交文件的吗,搞这么多行..........

调试,测试完再删文件不是很麻烦吗?主要项目涉及的语言和人员多,一劳永逸啦
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 22:05

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表