2010-10-28 9 views
7

Witam Chcę przetworzyć plik publikacji bibtex i posortować dla określonych pól (np. Rok) i przefiltrować określoną zawartość, a następnie umieścić ją na stronie internetowej. Natknąłem się na pybtex, który działa aż do czytania i analizowania pliku bibtex, ale w zasadzie nie jest udokumentowany i nie mogę wymyślić sposobu sortowania wpisów.Konwersja plików bibtex na html z pythonem (może pybtex?)

Czy pybtex jest drogą, którą należy przejść (w jaki sposób mogę posortować wpisy) lub czy istnieją lepsze opcje?

wielkie dzięki!

Odpowiedz

10

znalazł rozwiązanie, to sortuje wpisy w kolejności malejącej przy użyciu pybtex, najnowsze publikacje iść pierwszy:

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']