使用示例:
使用Python解析BibText引用格式-python黑洞网
# 生成示例bibtex文件
bibtex = """@ARTICLE{Cesar2013,
author = {Jean César},
title = {An amazing title},
year = {2013},
month = jan,
volume = {12},
pages = {12--23},
journal = {Nice Journal},
abstract = {This is an abstract. This line should be long enough to test
multilines...},
comments = {A comment},
keywords = {keyword1, keyword2}
}
"""
with open('bibtex.bib', 'w') as bibfile:
bibfile.write(bibtex)
# 处理bibtex文件
import bibtexparser
with open('bibtex.bib') as bibtex_file:
bib_database = bibtexparser.load(bibtex_file)
print(bib_database.entries)
# 输出
'''
{'journal': 'Nice Journal',
'comments': 'A comment',
'pages': '12--23',
'month': 'jan',
'abstract': 'This is an abstract. This line should be long enough to test\nmultilines...',
'title': 'An amazing title',
'year': '2013',
'volume': '12',
'ID': 'Cesar2013',
'author': 'Jean César',
'keyword': 'keyword1, keyword2',
'ENTRYTYPE': 'article'}]
'''
遇到无法解析月份的问题:
https://github.com/sciunto-org/python-bibtexparser/issues/280
import bibtexparser as bp
from bibtexparser.bparser import BibTexParser
from bibtexparser.customization import convert_to_unicode
with open('IEEE Proceeding.bib', encoding='UTF-8') as bibfile:
parser = BibTexParser(common_strings=True) # 声明解析器类
parser.customization = convert_to_unicode # 将BibTeX编码强制转换为UTF编码
bibdata = bp.load(bibfile, parser) # 通过bp.load()加载
# 输出所有的id
id_list = [item['ID'] for item in bibdata.entries]