用Python将bibtex文件转换为HTML(可能使用pybtex?)

8 投票
1 回答
1833 浏览
提问于 2025-04-16 06:12

你好,我想处理一个bibtex格式的出版物文件,按照特定的字段(比如年份)进行排序,并过滤掉某些内容,然后把这些信息放到网站上。我发现了pybtex这个工具,它可以读取和解析bibtex文件,但基本上没有文档说明,我搞不清楚怎么对条目进行排序。

请问pybtex是个好选择吗(我该怎么排序条目)?还是有更好的选择呢?

非常感谢!!

1 个回答

12

找到了一个解决办法,这段代码使用pybtex将条目按降序排列,也就是说最新的出版物会排在最前面:

from pybtex.database.input import bibtex
from operator import itemgetter, attrgetter
import pprint
parser = bibtex.Parser()
bib_data = parser.parse_file('ref.bib')

def sort_by_year(y, x):
    return int(x[1].fields['year']) - int(y[1].fields['year'])

bib_sorted = sorted(bib_data.entries.items(), cmp=sort_by_year)

for key, value in bib_sorted:
    print key
    print value.fields['year']
    print value.fields['author']
    print value.fields['title']

撰写回答