2013-06-12 11 views
10

Mi sono trovato a dover utilizzare uno script python per accedere a un webarchive.Errore durante l'apertura dell'archivio megawarc da Python

Quello che ho è un file di archivio web "megawarc" da http://archive.org/details/archiveteam-fanfiction-warc-11. Ho bisogno di un-megawarc questo, usando lo script python trovato a https://github.com/alard/megawarc.

Sto tentando di eseguire il comando "restore" e ho i tre file necessari (FILE.warc.gz, FILE.tar e FILE.json.gz) dal primo collegamento.

Ho entrambi python 2.7 e 3.3 installati.

-------------- -------------- aggiornamento

Ho ho fatto funzionare sia questo metodo ..

python megawarc restore FILE 

e questo metodo ..

assicurarsi di avere la megawarc file e ordereddict.py nella stessa directory, con i file che si desidera convertire. Rinominare il file megawarc a megawarc.py Aprire una console di pitone in questa directory

Type the following code (line by line) : 

import sys 
sys.argv = ['megawarc','restore','FILE'] 
import megawarc 
megawarc.main() 

utilizzando python 2.7, e questo è ciò che ottengo ..

c:\Python27>python megawarc restore FILE 
Traceback (most recent call last): 
    File "megawarc", line 563, in <module> 
main() 
    File "megawarc", line 552, in main 
mwr.process() 
    File "megawarc", line 460, in process 
self.process_entry(entry, tar_out) 
    File "megawarc", line 478, in process_entry 
entry["target"]["offset"], entry["target"]["size"]) 
    File "megawarc", line 128, in copy_to_stream 
raise Exception("End of file: %d bytes expected, but %d bytes read." % (buf_size, l)) 
Exception: End of file: 4096 bytes expected, but 236 bytes read. 

c'è qualcos'altro io sono mancante?

Ho il seguente file in tutti i c: \ python27

FILE.megawarc.json.gz 

FILE.megawarc.tar 

FILE.megawarc.warc.gz 

megawarc 

ordereddict.py 

È questo un qualche tipo di errore di file corrotti? C'è qualcosa che mi manca?

+1

Che cosa hai provato, quale errore hai ricevuto? –

+13

Pssh, nessuno ha la mentalità sbagliata per la programmazione. Semplicemente il fatto che tu abbia provato a risolvere un problema con la programmazione significa che potresti essere un ottimo programmatore. Si tratta di risoluzione dei problemi. –

+0

Quindi hai eseguito lo script Python che ti è stato dato? Hai aperto una shell dei comandi per eseguirla in modo da poter vedere i messaggi di errore, se ce ne sono? – duffymo

risposta

6

sul secondo link che hai fornito, ci sono due file importanti:

megawarc 
ordereddict.py 

Lo script eseguibile è megawarc. Per eseguirlo, bisogna lanciarlo in un guscio con

python megawarc restore FILE 

In alternativa, se si sta utilizzando un sistema basato su UNIX. Si può fare

chmod +x megawarc 

Per dare sceneggiatura megawarc proprietà eseguibile e quindi eseguirlo con

./megawarc restore FILE 

Qui, FILE è il nome effettivo è necessario digitare se i file 3 che avete sono FILE.warc.gz, FILE.tar, e FILE.json.gz. Devi modificare questo parametro con il prefisso comune ai tuoi 3 file di input, se necessario.

EDIT:

Va bene, ho trovato un'alternativa che avrebbe funzionato, se non si dispone di una shell standard per avviare lo script nella riga di comando. Quello che devi fare è:

  • Accertarsi che siano presenti i file megawarc e ordereddict.py nella stessa directory, con i file che si desidera convertire.
  • Rinominare il file megawarc-megawarc.py
  • Aprire una console di pitone in questa directory
  • Digitare il seguente codice (riga per riga):

    import sys 
    sys.argv = ['megawarc','restore','FILE'] 
    import megawarc 
    megawarc.main() 
    

Questo dovrebbe funzionare, ho l'ho appena provato Spero che possa essere d'aiuto.

+1

Con l'avvertimento confuso che FILENAME sembra essere un prefisso del nome file, non un vero nome file. – kampu

+0

>>> ripristino del ripristino del megawarc python SintassiErrore: sintassi non valida >>> –

+0

bene, ho provato quello (grazie !!) e ho capito. –

Problemi correlati