8

こんにちは、bibtex 出版物ファイルを解析し、特定のフィールド (年など) で並べ替え、特定のコンテンツをフィルター処理して、Web サイトに配置したいと考えています。bibtex ファイルの読み取りと解析までは機能する pybtex に出会いましたが、基本的に文書化されておらず、エントリを並べ替える方法がわかりません。

pybtex が進むべき道ですか (エントリを並べ替えるにはどうすればよいですか)、それともより良いオプションがありますか?

どうもありがとう!!

4

1 に答える 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']
于 2010-10-28T18:30:16.713 に答える