こんにちは、bibtex 出版物ファイルを解析し、特定のフィールド (年など) で並べ替え、特定のコンテンツをフィルター処理して、Web サイトに配置したいと考えています。bibtex ファイルの読み取りと解析までは機能する pybtex に出会いましたが、基本的に文書化されておらず、エントリを並べ替える方法がわかりません。
pybtex が進むべき道ですか (エントリを並べ替えるにはどうすればよいですか)、それともより良いオプションがありますか?
どうもありがとう!!
こんにちは、bibtex 出版物ファイルを解析し、特定のフィールド (年など) で並べ替え、特定のコンテンツをフィルター処理して、Web サイトに配置したいと考えています。bibtex ファイルの読み取りと解析までは機能する pybtex に出会いましたが、基本的に文書化されておらず、エントリを並べ替える方法がわかりません。
pybtex が進むべき道ですか (エントリを並べ替えるにはどうすればよいですか)、それともより良いオプションがありますか?
どうもありがとう!!
解決策が見つかりました。これにより、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']