QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 643|回复: 0

一个解开chm文件的东西

[复制链接]
发表于 2005-2-4 21:45:21 | 显示全部楼层 |阅读模式
用python写的,可惜如果发现chm文件中如果编译了中文之类文件名的文件就会出错,大家帮我看看。

[code:1]
#!/usr/bin/env python
#-*- coding: utf8 -*-
#
#unchm
#Copyright (c) 2005 duotaiya <[email protected]>
#License: GPLv2

import os
import sys
import string
import chm
from commands import getoutput

#read command line
try:
        arg=sys.argv[1]
        if arg==" ":
                print "err"
                sys.exit()
        if not arg:
                print "err"
                sys.exit()
except:
        print "usage: unchm <filename>"
        sys.exit()

#open chmfile
current_file=chm.CHMFile()
try:
        current_file.LoadCHM(arg)
       
        #get hhc file
        topics_tree=current_file.GetTopicsTree()
        file=open("TOC.HHC","w")
        file.write(topics_tree)
        file.close()
       
        #proc *hhc get filenames
        topics=getoutput("""cat TOC.HHC |grep -E 'htm|html'|cut -d'"' -f4""")

        topics=string.split(topics,"\n")
        #write files
        for topic in topics:
                print "getting... "+topic
                temp=current_file.ResolveObject("/"+topic)
               
                temp2=current_file.RetrieveObject(temp[1])

                file=open(topic,"w")
                file.write(temp2[1])
                file.close()
       
        #close file
        current_file.CloseCHM()

except:
        print "err: I do not know the fucking bugs,\
                use chmsee please"
        sys.exit()
[/code:1]
源代码在
http://www.linuxfans.org/nuke/mo ... wn&did=3289
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-6 15:25 , Processed in 0.087906 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表