2010-10-28 4 views
7

Salut Je veux analyser un fichier de publications bibtex et trier des champs spécifiques (par exemple l'année) et filtrer certains contenus, pour ensuite le mettre sur un site Web. Je suis tombé sur pybtex, qui fonctionne aussi bien que lire et analyser le fichier bibtex, mais il n'est pas documenté et je n'arrive pas à comprendre comment trier les entrées.convertir des fichiers bibtex en html avec python (peut-être pybtex?)

Est-ce que pybtex est le chemin à parcourir (comment trier les entrées) ou existe-t-il de meilleures options?

merci beaucoup!

Répondre

10

trouvé une solution, ce trie les entrées dans un ordre décroissant en utilisant pybtex, publications les plus récentes vont d'abord:

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