2013-06-12 15 views
10

webarchiveにアクセスするためにpythonスクリプトを使用する必要があります。Pythonからmegawarcアーカイブを開く際にエラーが発生しました

私が持っているものは、 'megawarc'ウェブアーカイブファイルです(http://archive.org/details/archiveteam-fanfiction-warc-11)。 https://github.com/alard/megawarcにあるPythonスクリプトを使用して、私はこれをun-megawarcにする必要があります。

私は 'restore'コマンドを実行しようとしており、最初のリンクから3つのファイル(FILE.warc.gz、 FILE.tar、およびFILE.json.gz)が必要です。

私はPython 2.7と3.3の両方をインストールしています。

--------------更新--------------私はこの方法の両方を走ってきました

..

python megawarc restore FILE 

とこの方法..

変換するファイルと同じディレクトリにmegawarcとordereddict.pyというファイルがあることを確認してください。私は

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. 

は何か他のものがあります。.. は、Python 2.7を使用して、このディレクトリに 開き

Type the following code (line by line) : 

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

をPythonのコンソールをmegawarc.pyするファイルmegawarcの名前を変更し、これは私が得るものです行方不明?

私は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ベースのシステムを使用している場合は、シェルで起動する必要があります。あなたはmegawarcのスクリプトを実行可能性を付与して、ここで

./megawarc restore FILE 

でそれを実行するには

chmod +x megawarc 

を行うことができ、FILEはあなたが持っている3つのファイルがある場合、ユーザーが入力する実際の名前があるFILE.warc.gzFILE.tar、およびFILE.json.gz。必要に応じて、この接頭辞を共通の接頭辞で3つの入力ファイルに変更する必要があります。

EDIT:

さて、私はあなたがコマンドラインでスクリプトを起動するための標準のシェルを持っていない場合は仕事との代替を発見しました。 何がしなければならないことは次のとおりです。

  • はあなたが変換したいファイルとファイルmegawarcと同じディレクトリにordereddict.pyを、持っていることを確認してください。
  • このディレクトリ内のpythonコンソール
  • 次のコードを入力(ラインごと)megawarcオープン

  • megawarc.pyにファイルの名前を変更します。私はきた、

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

これは動作するはずですちょうどそれを試みた。 お待ちしています。

+1

FILENAMEは実際のファイル名ではなく、ファイル名の接頭辞のように見えるという混乱した警告があります。 – kampu

+0

>>> python megawarcリストアテスト SyntaxError:構文が正しくありません >>> –

+0

よく、お試しいただきありがとうございます。 –

関連する問題