当前位置: 首页 > news >正文

latex bib文件参考文献去重

使用latex写文章时,会使用bib文件存储参考文献,有时会出现参考文献重复的情况,需要去重,可以使用如下代码:

import json
import re


class DuplicateCheck:
    def __init__(self):
        self.bib_path = '/path/to/XXX.bib' # 要去重的bib文件路径
        self.data = ''
        self.dict = {}  # key=title, value=cite
        self.repeat = ''

    def open_bib(self):
        with open(self.bib_path, 'r', encoding='UTF-8') as f:
            self.data = f.read().split('@')
            print(self.data[1])  # 测试
            # for line in f:
            #     print(line)

    def check(self):
        length = len(self.data)
        for i in range(1, length):
            strs = re.split(r'{|,|}', self.data[i])
            # print(str)

            # 寻找Title
            for j in range(len(strs)):
                if 'title' in strs[j] and 'booktitle' not in strs[j]:
                    if strs[j+1] in self.dict.keys():
                        r = f'{strs[j+1]}此文献重复!!!!!!!!!!!!!!!!!!\n它的索引{self.dict[strs[j+1]]}\n\n'
                        print(r)
                        self.repeat += r
                    else:
                        self.dict[strs[j+1]] = strs[1]

    def save(self):
        ref = json.dumps(self.dict, indent=4, ensure_ascii=False, sort_keys=True)
        with open('ref.json', 'w', encoding='UTF-8') as f:
            f.write(ref) 
        with open('ref_repeat.txt', 'w', encoding='UTF-8') as f:
            f.write(self.repeat)


# 按装订区域中的绿色按钮以运行脚本。
if __name__ == '__main__':
    check = DuplicateCheck()
    check.open_bib()
    check.check()
    check.save()

给定要去重的bib文件路径/path/to/XXX.bib,运行代码后,在当前路径下得到ref.json文件,展示了所有参考文献信息,还有ref_repeat.txt,展示了重复的参考文献。

相关文章:

  • 二、vtkCommand的使用
  • Android 14 Telephony 网络选择功能介绍
  • [MoeCTF 2021]babyRCE
  • 二.使用ffmpeg对原始音频数据重采样并进行AAC编码
  • C++基础笔记
  • Matlab 汽车悬架系统动力学建模与仿真
  • Flask中使用with语句手动加载应用上下文
  • 【人工智能基础2】机器学习、深度学习总结
  • AI智能混剪工具:AnKo打造高效创作的利器!
  • How to install cangjie on Linux mint 22.1
  • [网络][tcp协议]:tcp报头
  • 深度学习篇---分类任务图像预处理模型训练
  • k8s serviceaccount在集群内指定apiserver时验证错误的问题
  • Java算法OJ(12)
  • spring boot+mybaits多条件模糊查询和分页查询
  • 《C++ Primer》学习笔记(四)
  • xcode 旧版本、历史版本下载
  • Flutter FloatingActionButton 从核心用法到高级定制
  • 人工智能技术与应用演讲(61页PPT)(文末有下载方式)
  • 【redis】reids 客户端的连接(Windows和mac)
  • 营销网站建设hanyous/360搜索指数
  • 幼儿园网站建设发展规划/软文推送
  • 图片设计制作/南宁百度seo优化
  • 做网站 用什么兼容/简述网站推广的方式
  • 做爰全过程免费的视频 网站/如何免费制作网站
  • 做网站很简单/百度助手app下载