├── .gitignore
├── resource
├── mimetype
├── page_styles.css
├── META-INF
│ └── container.xml
├── toc.ncx
├── content.opf
├── index.html
└── stylesheet.css
├── main.py
├── zipFile.py
├── README.md
├── htmlcl.py
└── html2epub.py
/.gitignore:
--------------------------------------------------------------------------------
1 | .IDEA
2 |
3 | *.pyc
--------------------------------------------------------------------------------
/resource/mimetype:
--------------------------------------------------------------------------------
1 | application/epub+zip
--------------------------------------------------------------------------------
/resource/page_styles.css:
--------------------------------------------------------------------------------
1 | @page {
2 | margin-bottom: 5pt;
3 | margin-top: 5pt
4 | }
5 |
--------------------------------------------------------------------------------
/resource/META-INF/container.xml:
--------------------------------------------------------------------------------
1 |
2 | 标签的src属性
22 | if key == "src":
23 | # 哈希url,得到一会儿要保存的唯一的图片名
24 | hash = hashlib.md5(value).hexdigest().upper()[0:8]
25 | new_url = "oebps/image/" + hash + '.png'
26 |
27 | # 下载图片并保存
28 | # print value
29 | # opener=urllib2.build_opener()
30 | # req=urllib2.Request(value)
31 | # req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36")
32 | # req.add_header("If-None-Match",'"1153673238\"')
33 | # res=opener.open(req)
34 | # f = open(self.path + new_url,'wb')
35 | # f.write(res.read())
36 | try:
37 | i_headers = {
38 | "User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1) Gecko/20090624 Firefox/3.5",
39 | "Accept": "text/plain"}
40 |
41 | req = urllib2.Request(value, headers=i_headers)
42 | res = urllib2.urlopen(req)
43 | f = open(self.path + new_url, "wb")
44 | f.write(res.read())
45 |
46 | # urllib.urlretrieve(value, self.path + new_url)
47 | except Exception:
48 | print Exception
49 | print key, value, hash
50 |
51 | # 替换HTML中的图片路径为本地图片路径
52 | self.html[0] = self.html[0].replace(value, new_url)
53 |
--------------------------------------------------------------------------------
/resource/index.html:
--------------------------------------------------------------------------------
1 |
2 |
这是小白的Python新手教程。
11 |Python是一种计算机程序设计语言。你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页编程的JavaScript语言,等等。
12 |那Python是一种什么语言?
13 |首选,我们普及一下编程语言的基础知识。用任何编程语言来开发程序,都是为了让计算机干活,比如下载一个MP3,编写一个文档等等,而计算机干活的CPU只认识机器指令,所以,尽管不同的编程语言差异极大,最后都得“翻译”成CPU可以执行的机器指令。而不同的编程语言,干同一个活,编写的代码量,差距也很大。
14 |比如,完成同一个任务,C语言要写1000行代码,Java只需要写100行,而Python可能只要20行。
15 |所以Python是一种相当高级的语言。
16 |你也许会问,代码少还不好?代码少的代价是运行速度慢,C程序运行1秒钟,Java程序可能需要2秒,而Python程序可能就需要10秒。
17 |那是不是越低级的程序越难学,越高级的程序越简单?表面上来说,是的,但是,在非常高的抽象计算中,高级的Python程序设计也是非常难学的,所以,高级程序语言不等于简单。
18 |但是,对于初学者和完成普通任务,Python语言是非常简单易用的。连Google都在大规模使用Python,你就不用担心学了会没用。
19 |用Python可以做什么?可以做日常任务,比如自动备份你的MP3;可以做网站,很多著名的网站包括YouTube就是Python写的;可以做网络游戏的后台,很多在线游戏的后台都是Python开发的。总之就是能干很多很多事啦。
20 |Python当然也有不能干的事情,比如写操作系统,这个只能用C语言写;写手机应用,只能用Objective-C(针对iPhone)和Java(针对Android);写3D游戏,最好用C或C++。
21 |如果你是小白用户,满足以下条件:
22 |不要再犹豫了,这个教程就是为你准备的!
29 |准备好了吗?
30 |廖雪峰,十年软件开发经验,业余产品经理,精通Java/Python/Ruby/Visual Basic/Objective C等,对开源框架有深入研究,著有《Spring 2.0核心技术与最佳实践》一书,多个业余开源项目托管在GitHub,欢迎微博交流:
33 | 34 |