2010-10-28 10 views
7

Hola quiero analizar un archivo de publicaciones bibtex y ordenar campos específicos (por ejemplo, año) y filtrar cierto contenido para luego ponerlo en un sitio web. Me encontré con pybtex, que funciona tan lejos como para leer y analizar el archivo bibtex, pero básicamente no está documentado y no puedo descifrar cómo ordenar las entradas.convirtiendo archivos bibtex a html con python (tal vez pybtex?)

¿Es pybtex el camino a seguir (cómo puedo ordenar las entradas) o hay mejores opciones?

muchas gracias !!

Respuesta

10

encontrado una solución, se ordena las entradas en un orden descendente utilizando pybtex, publicaciones más recientes van primero:

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