[PIPython] Re: Digest di Python, Volume 5, Numero 1

Carlo C8E Miron carlo.miron
Mar 1 Mar 2005 16:06:06 CET


Luigi Pantano wrote: 
> Ho una serie di file molto numerosa (oltre 10'000) di pochi KB, dei
> quali devo creare il codice SHA (oppure MD5) e salvarlo su di un unico

Se puoi decidere tu tra MD5 e SHA, considera che il primo e' molto piu'
veloce e genera un hash piu' piccolo, ma comunque sufficiente per il
problema in esame.

> file contenente tutti i codici (Nome file: "code_sha.txt"). Questi
> codici serviranno per effettuare dei controlli su eventuali
> manomissioni, volontarie o involontarie, dei file.
> 
> Problema:
> Come posso prelevare facilmente e velocemente il k-esimo (con k che
> varia da 1 a 10'000) codice all'interno del file evitando di leggerlo
> interamente?

Perche' non leggerlo interamente? Il file di "firma" di 10k file occupa
suppergiu' 1MB, abbondantemente gestibile anche su host "vecchiotti".
Un PC moderno gestisce senza problemi anche 2 ordini di grandezza
superiori, e la memoria costa poco...
Alternativamente, e giusto per contraddire il Michele Nazionale 
(di cui posseggo autografo originale <wink />), ti propongo di valutare 
SQLite <http://sqlite.org/> e pySQLite <http://pysqlite.sf.org/>.

> Che dimensioni massime può assumere "code_sha.txt" affinchè possa essere
> letto dal comando read? (ho notato che per un file di 700 MB windows mi
> dia errore: "memoria virtuale insufficente")

Python non pone alcun limite. La risposta dipende dal sistema ospite.
Mi ripeto, la memoria costa poco. <wink />

> P.S.
> per quanto rigaurda l'archiviazione, e quindi la corrispondenza tra file
> interessato al controllo ed il suo relativo codice, pensavo ad una cosa
> del genere:
> 
> (Ogni file ha un nome diverso, non esistono 2 file aventi stesso nome.)
> 
> SHA_DEL_NOME_DEL_FILE_1, SHA_DEL_FILE_1
> SHA_DEL_NOME_DEL_FILE_2, SHA_DEL_FILE_2
> SHA_DEL_NOME_DEL_FILE_3, SHA_DEL_FILE_3
> ...
> SHA_DEL_NOME_DEL_FILE_k, SHA_DEL_FILE_k

Io invece ti consiglio il formato standard::

HASH_DEL_FILE_k (2 spazi) NOME_DEL_FILE_k

che puo' essere generato e/o verificato anche dai comandi standard u*ix
md5sum e sha1sum.

> Ringrazio preventivamente chiunque possa darmi una mano di aiuto.

Prego, HTH.

Michele Sciabarra' wrote:
>>  Il subject dovrebbe essere "accesso diretto a file" (si diceva
"random" ai tempi del c64).

Ehhhhh, i bei tempi dei "file ad accesso casuale" :")

In [32]: OPEN 1, 8, 2, "My File,L," + CHR$(80)
------------------------------------------------------------
   File "<console>", line 1
     OPEN 1, 8, 2, "My File,L," + CHR$(40)
          ^
SyntaxError: invalid syntax

Sigh, non funziona... ="|

>>  Le possibilitò sono due: se il file è a lunghezza fissa (ogni
record è tot caratteri) basta una seek alla posizione del file.
>>  Altrimenti io consiglierei di mettere il tutto in un file dbm (se
possibile) anzichè testo la cui caratterisitica
>>  è proprio l'accesso diretto con chiave.

o SQLite <wink /><wink />

HAND,
  C8E

-- 
Disclaimer:
If I receive a message from you, you are agreeing that:
1. I am by definition, "the intended recipient".
2. All information in the email is mine to do with as I see fit and
 make such financial profit, political mileage, or good joke as it
 lends itself to. In particular, I may quote it on USENET or the WWW.
3. I may take the contents as representing the views of your company.
4. This overrides any disclaimer or statement of confidentiality that
 may be included on your message.


More information about the Python mailing list