Compagno di Oberdan, nel 1878 fu imprigionato e dovette fuggire a Roma, dove si iscrisse alla facoltà di Lettere. Laureatosi nel 1881, l’anno seguente fu tra i fondatori del “Giornale storico della letteratura italiana” e si trasferì a Firenze; qui collaborò al Catalogo del Risorgimento . Assistente alla Biblioteca nazionale centrale di Firenze, nel 1886 fu incaricato di occuparsi dei manoscritti, nel 1887 venne trasferito alla Biblioteca Medicea Laurenziana e nel 1888 fu chiamato alla direzione della Biblioteca Riccardiana. Libero docente a Bologna dal 1893, nel 1898 divenne direttore della Biblioteca Marciana di Venezia, occupandosi del suo trasferimento da Palazzo Ducale alla Zecca. Nel 1905 tornò a Firenze, alla direzione della Biblioteca nazionale centrale, dove rimase fino al 1923, quando, su sua richiesta, fu collocato a riposo.