Sar*_*ers 10 python python-2.7
我发现自己必须使用python脚本来访问webarchive.
我所拥有的是来自http://archive.org/details/archiveteam-fanfiction-warc-11的'megawarc'网络档案文件.我需要使用https://github.com/alard/megawarc上的python脚本来解决这个问题.
我正在尝试运行'restore'命令,我从第一个链接获得了所需的三个文件(FILE.warc.gz,FILE.tar和FILE.json.gz).
我安装了python 2.7和3.3.
-------------- --------------更新
我跑了这个方法..
python megawarc restore FILE
Run Code Online (Sandbox Code Playgroud)
而这个方法..
确保在同一目录中包含文件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()
Run Code Online (Sandbox Code Playgroud)
使用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.
Run Code Online (Sandbox Code Playgroud)
还有别的东西我不见了吗?
我在c:\ python27中都有以下文件
FILE.megawarc.json.gz
FILE.megawarc.tar
FILE.megawarc.warc.gz
megawarc
ordereddict.py
Run Code Online (Sandbox Code Playgroud)
这是某种类型的损坏文件错误吗?有什么我想念的吗?
在您提供的第二个链接上,有两个重要文件:
megawarc
ordereddict.py
Run Code Online (Sandbox Code Playgroud)
可执行脚本是megawarc.要运行它,你必须在shell中启动它
python megawarc restore FILE
Run Code Online (Sandbox Code Playgroud)
或者,如果您使用的是基于UNIX的系统.你可以做
chmod +x megawarc
Run Code Online (Sandbox Code Playgroud)
给megawarc脚本可执行属性,然后运行它
./megawarc restore FILE
Run Code Online (Sandbox Code Playgroud)
这里,FILE是,如果3个文件,你必须是你应该键入实际的名称FILE.warc.gz,FILE.tar和FILE.json.gz.如果需要,您必须通过3个输入文件的公共前缀更改此参数.
编辑:
好的,如果您没有标准shell来在命令行中启动脚本,我找到了一个可行的替代方法.你要做的是:
megawarc 并ordereddict.py位于同一目录中.megawarc 为megawarc.py键入以下代码(逐行):
import sys
sys.argv = ['megawarc','restore','FILE']
import megawarc
megawarc.main()
Run Code Online (Sandbox Code Playgroud)这应该工作,我刚刚尝试过.希望它会有所帮助.
| 归档时间: |
|
| 查看次数: |
566 次 |
| 最近记录: |