Ошибка открытия архива megawarc из Python

Мне приходилось использовать python script для доступа к веб-архиву.

У меня есть файл веб-архива 'megawarc' из http://archive.org/details/archiveteam-fanfiction-warc-11. Мне нужно un-megawarc это, используя python script, найденный в 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   Откройте консоль python в этом каталоге

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

Во второй ссылке, которую вы указали, есть два важных файла:

megawarc
ordereddict.py

Исполняемый файл script равен megawarc. Чтобы запустить его, вы должны запустить его в оболочке с помощью

python megawarc restore FILE

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

chmod +x megawarc

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

./megawarc restore FILE

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

ИЗМЕНИТЬ:

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

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

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

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