2010-10-28 11 views
7

Ciao Voglio analizzare un file di pubblicazioni bibtex e ordinare per campi specifici (ad esempio anno) e filtrare determinati contenuti, per poi metterlo su un sito web. Mi sono imbattuto in pybtex, che funziona per quanto riguarda la lettura e l'analisi del file bibtex, ma fondamentalmente non è documentato e non riesco a capire come ordinare le voci.conversione di file bibtex in html con python (forse pybtex?)

pybtex è la strada da percorrere (come è possibile ordinare le voci) o ci sono opzioni migliori?

grazie mille !!

risposta

10

trovato una soluzione, questa smista le voci in ordine decrescente utilizzando pybtex, più recenti pubblicazioni vanno prima:

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