2013-06-12 3 views
10

Я обнаружил, что мне нужно использовать скрипт python для доступа к веб-архиву.Ошибка открытия архива megawarc из Python

У меня есть файл архива веб-архива 'megawarc' от http://archive.org/details/archiveteam-fanfiction-warc-11. Мне нужно un-megawarc это, используя скрипт python, найденный по адресу https://github.com/alard/megawarc.

Я пытаюсь запустить команду «restore», и у меня есть три файла (FILE.warc.gz, FILE.tar и FILE.json.gz) из первой ссылки.

У меня установлены оба python 2.7 и 3.3.

-------------- -------------- обновление

Я побежал как этот метод ..

python megawarc restore FILE 

и этот метод ..

Убедитесь, что вы имеете файлы megawarc и ordereddict.py в том же каталоге, с файлами, которые вы хотите конвертировать. Переименовать файл megawarc в megawarc.py Откройте консоль питона в этом каталоге

Type the following code (line by line) : 

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

с помощью Python 2.7, и это то, что я получаю ..

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: \ python27

FILE.megawarc.json.gz 

FILE.megawarc.tar 

FILE.megawarc.warc.gz 

megawarc 

ordereddict.py 

Является ли это какой-то тип коррумпированной ошибки файла? Есть что-то, что мне не хватает?

+1

Что вы попробовали, какую ошибку вы получили? –

+13

Pssh, никто не имеет неправильного мышления для программирования. Просто тот факт, что вы пытаетесь решить проблему с программированием, означает, что вы можете быть отличным программистом. Речь идет о решении проблем. –

+0

Итак, вы выполнили написанный вами скрипт Python? Вы открыли командную оболочку для ее запуска, чтобы вы могли видеть сообщения об ошибках, если они есть? – duffymo

ответ

6

На второй ссылке вы предоставили, есть две важные файлы:

megawarc 
ordereddict.py 

исполняемый скрипт megawarc. Для того, чтобы запустить его, вы должны запустить его в оболочке с

python megawarc restore FILE 

В качестве альтернативы, если вы используете систему в UNIX основе. Вы можете сделать

chmod +x megawarc 

Чтобы дать megawarc скрипт исполняемым свойство, а затем запустить его с

./megawarc restore FILE 

Здесь FILE это фактическое имя вы должны ввести, если 3 файла у вас есть являются FILE.warc.gz, FILE.tar, и FILE.json.gz. Вы должны изменить этот параметр общим префиксом на 3 входных файла, если это необходимо.

EDIT:

Хорошо, я нашел альтернативу, которая будет работать, если вы не имеете стандартную оболочку для запуска скрипта в командной строке. То, что вы должны сделать, это:

  • Убедитесь, что файлы megawarc и ordereddict.py в том же каталоге, с файлами, которые вы хотите конвертировать.
  • Переименовать файл megawarc в megawarc.py
  • Откройте консоль питона в этом каталоге
  • Введите следующий код (строка за строкой):

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

Это должно работать, я имею просто попробовал. Надеюсь, это поможет.

+1

С запутанным предупреждением о том, что FILENAME является префиксом имени файла, а не фактическим именем файла. – kampu

+0

>>> python megawarc restore test SyntaxError: недействительный синтаксис >>> –

+0

ну, попробовал (спасибо !!), и я получаю это. –

Смежные вопросы