- 浏览: 143635 次
- 性别:
- 来自: 西安
最新评论
-
yukang1:
怎么关闭vbs呢 唉
利用VBScript在隐藏窗口中运行应用程序 -
greatghoul:
hanmiao 写道好用,我在 51CTO 上也找到了类似的解 ...
JFreeChart中文乱码和文字模糊问题的通用解决方案 | #java #chart -
hanmiao:
好用,我在 51CTO 上也找到了类似的解决方案,也是通过自定 ...
JFreeChart中文乱码和文字模糊问题的通用解决方案 | #java #chart -
janecd:
...
java BoxLayout布局心得 | #java #swing -
janecd:
java BoxLayout布局心得 | #java #swing
前段时间写了个简单的TXT2HTML小说转换器HTA版,现在拿python再实现一遍,自动按章节分割成多个HTML文件,并建立目录,方便阅读。
效果图:
脚本代码:
将其中的
刚刚接触python,感觉写的代码很不精简,请大家帮忙改进下。
效果图:
脚本代码:
# encoding: gbk # # 将txt小说分割转换成多个HTML文件 # # @author : GreatGhoul # @email : greatghoul@gmail.com # @blog : http://greatghoul.iteye.com import re import os # regex for the section title # sec_re = re.compile(r'第.+卷\s+.+\s+第.+章\s+.+') # txt book's path. source_path = 'f:\\佣兵天下.txt' path_pieces = os.path.split(source_path) novel_title = re.sub(r'(\..*$)|($)', '', path_pieces[1]) target_path = '%s%s_html' % (path_pieces[0], novel_title) section_re = re.compile(r'^\s*第.+卷\s+.*$') section_head = ''' <html> <head> <meta http-equiv="Content-Type" content="GBK"/> <title>%s</title> </head> <body style="font-family:楷体,宋体;font-size:16px; margin:0; padding: 20px; background:#FAFAD2;color:#2B4B86;text-align:center;"> <h2>%s</h2><a href="#bottom">去页尾</a><hr/>''' # escape xml/html def escape_xml(code): text = code text = re.sub(r'<', '<', text) text = re.sub(r'>', '>', text) text = re.sub(r'&', '&', text) text = re.sub(r'\t', ' ', text) text = re.sub(r'\s', ' ', text) return text # entry of the script def main(): # create the output folder if not os.path.exists(target_path): os.mkdir(target_path) # open the source file input = open(source_path, 'r') sec_count = 0 sec_cache = [] idx_cache = [] output = open('%s\\%d.html' % (target_path, sec_count), 'w') preface_title = '%s 前言' % novel_title output.writelines([section_head % (preface_title, preface_title)]) idx_cache.append('<li><a href="%d.html">%s</a></li>' % (sec_count, novel_title)) for line in input: # is a chapter's title? if line.strip() == '': pass elif re.match(section_re, line): line = re.sub(r'\s+', ' ', line) print 'converting %s...' % line # write the section footer sec_cache.append('<hr/><p>') if sec_count == 0: sec_cache.append('<a href="index.html">目录</a> | ') sec_cache.append('<a href="%d.html">下一篇</a> | ' % (sec_count + 1)) else: sec_cache.append('<a href="%d.html">上一篇</a> | ' % (sec_count - 1)) sec_cache.append('<a href="index.html">目录</a> | ') sec_cache.append('<a href="%d.html">下一篇</a> | ' % (sec_count + 1)) sec_cache.append('<a name="bottom" href="#">回页首</a></p>') sec_cache.append('</body></html>') output.writelines(sec_cache) output.flush() output.close() sec_cache = [] sec_count += 1 # create a new section output = open('%s\\%d.html' % (target_path, sec_count), 'w') output.writelines([section_head % (line, line)]) idx_cache.append('<li><a href="%d.html">%s</a></li>' % (sec_count, line)) else: sec_cache.append('<p style="text-align:left;">%s</p>' % escape_xml(line)) # write rest lines sec_cache.append('<a href="%d.html">下一篇</a> | ' % (sec_count - 1)) sec_cache.append('<a href="index.html">目录</a> | ') sec_cache.append('<a name="bottom" href="#">回页首</a></p></body></html>') output.writelines(sec_cache) output.flush() output.close() sec_cache = [] # write the menu output = open('%s\\index.html' % (target_path), 'w') menu_head = '%s 目录' % novel_title output.writelines([section_head % (menu_head, menu_head), '<ul style="text-align:left">']) output.writelines(idx_cache) output.writelines(['</ul><body></html>']) output.flush() output.close() inx_cache = [] print 'completed. %d chapter(s) in total.' % sec_count if __name__ == '__main__': main()
将其中的
引用
source_path = 'f:\\佣兵天下.txt'
修改成TXT小说的路径,再根据情况,稍微修改下匹配章节标题的正则引用
section_re = re.compile(r'^\s*第.+卷\s+.*$')
即可。脚本会在小说所在目录生成一个"文件名_html"的文件夹用于存放节割后的文件。
刚刚接触python,感觉写的代码很不精简,请大家帮忙改进下。
发表评论
-
python发送文件夹内容到邮箱
2012-02-07 00:48 2897由于我经常需要备份文件夹下的内容到邮件里面,每个打开邮件,上传 ... -
Cognos开发笔记
2012-02-07 00:43 1833前一段时间,完成了 ... -
python批量转换文件编码
2012-02-07 00:38 3160via: http://www.g2w.me/2012/02/ ... -
VIM中移动选中内容到备份文件
2012-02-07 00:33 1254在公司跟踪自己的工作计划时,我使用的 gtd 工具是 vim ... -
yuser
2011-06-08 18:19 0// ==UserScript== // @name ... -
Python的妙用,不解释
2011-06-02 17:32 1454import base64 filelist = [ ... -
config.js
2011-06-02 17:31 0写道 U0VSVkVSID0gJ1xcXFwxMC4xND ... -
util.js
2011-06-02 17:30 0写道 Ly8g5qih5p2/5YyW5a2X56ym5L ... -
teamtalk.js
2011-06-02 17:29 0写道 KGZ1bmN0aW9uKCkgewogICAgdm ... -
TeamTalk.hta
2011-06-02 17:28 0写道 PGh0bWw+CjxodGE6YXBwbGljYX ... -
JavaScript目录遍历
2011-05-20 17:18 0// 代码行数统计工具 var fso = new Ac ... -
巧用Scanner读取输入流中的所有内容
2011-05-18 14:51 1344URL url = new URL("http:// ... -
python备份表
2011-05-06 16:18 0import pyodbc import os impor ... -
Python DataViewListCtrl用法
2011-05-06 16:15 0import wx.dataview as dv sel ... -
python 对非规范化json的处理
2011-05-06 16:11 0json 格式: [{name: '浪人情歌', autho ... -
encode py
2011-04-01 17:32 0import base64 import os ... -
HTA无标题窗口拖动
2011-03-23 10:57 0var moveing = false,x,y; tit ... -
python db manager
2011-03-22 20:03 0#!/usr/bin/env python # coding: ... -
pyodbc with statement
2011-03-09 20:53 0class DataProvider(object): ... -
fdsafdsa
2011-03-03 17:43 0#!/usr/bin/env python # coding ...
相关推荐
Python Machine Learning的第一版+第二版+中文第一版 Introduction 第一章 让计算机从数据中学习 将数据转化为知识 三类机器学习算法 第二章 训练机器学习分类算法 透过人工神经元一窥早期机器学习历史 使用Python...
基于深度学习的场景语义分割python源码+项目说明.zip 本文创建了SUPnetw网络实现利用有限开放基准测试与无语义标签实际城市竣工测绘三维场景数据共同进行训练模型,提高城市三维场景点云语义分割的性能 SUPnet网络...
1.1.1 转换图像格式 1.1.2 创建缩略图 1.1.3 复制和粘贴图像区域 1.1.4 调整尺寸和旋转 1.2 matplotlib 1.2.1 绘制图像、点和线 1.2.2 图像轮廓和直方图 1.2.3 交互式标注 1.3 numpy 1.3.1 图像...
11.7 在不同的Python解释器之间交互 11.8 实现远程方法调用 11.9 简单的客户端认证 11.10 在网络服务中加入SSL 11.11 进程间传递Socket文件描述符 11.12 理解事件驱动的IO 11.13 发送与接收大型数组 第十二...
20实战项目:1. 猜字游戏;2.闹钟;3.骰子模拟器;4.二维码;5.语言检测;...13.图像转换器;14.重量转换器;15.年龄和性别检测;16.人脸检测;17.铅笔素描;18.文本编辑器;19.图像分割;20.模拟时钟。
本书针的读者是高校学生,科研工作者,图像处理爱好者。对于这些 人群,他们往往是带着具体的问题,在苦苦寻找解决方案。为了一个小问 题就让他们去学习 C++ 这么深奥的语言几乎是不...51使用 Haar 分类器进行面部检测
在这里,它用于分割TouchOSC的页面(此处为/1 ,需要反馈),“实际”的osc URL( /sl/-1/set )和“虚拟的”附加参数( wet )。 目前,唯一记录的反馈是您有一个推子映射到所有循环的音量(在上面定义了一个),...
2.19 实现一个简单的递归下降分析器 . . . . . . . . . . . . . . . . . . . . . . . 77 2.20 字节字符串上的字符串操作 . . . . . . . . . . . . . . . . . . . . . . . . . 85 第三章:数字日期和时间 88 . . . ....
功能: 高效学习凝聚分类器的算法 有效地聚集过度分割的体积的算法 用于比较两个标记卷的信息度量变化的实现 估计分割图中不确定性的...Python 绑定,用于在Gala和Raveler等各种工具环境中访问 Rag、分割例程和编辑操作
1.1 Python 简介......................................1 1.2 安装软件包......................................2 1.2.1 Python(x,y)..................................... 2 1.2.2 Enthought Python ...
Matlab脚本从CT扫描中分割人类头骨,清洁分割后的头骨,将头骨体积转换为网格并向健康头骨注入Kong洞。 Python 3.6 MATLAB R2018b MeshLab v2016.12 ITK-SNAP 3.6.0 3D切片机4.8.1 r26813 网格混合器3.5.474 通过CT...
4. 对图像进行预处理,包括随机裁剪、归一化和转换为tensor。 5. 加载预训练模型,构建分类器。 6. 训练模型,并在验证集上评估模型性能。 7. 在训练过程中,每隔logging_steps步记录一次训练日志,包括损失值、准确...
有关脚本用法的更多信息: python -m panopticapi.evaluation --help 格式转换器COCO全景分割以新存储。 与COCO检测格式独立存储每个分段不同,COCO全全景格式将图像的所有分段存储在单个PNG文件中。 这种紧凑的...
主要包含两个生成器Generator和四个辨别器Discriminator,也是本工作的主要完成训练框架转换的部分。本工作主要根据开源的pytorch代码,将其中的风格迁移模型U-GAT-IT的模型定义、训练和测试脚本改成了mindspore框架...
我的旧电脑有一个硬件 mpeg-2 编码器,但我拥有的视频编辑软件在导入和导出时进行转换 - 浪费大量时间。 QuickTime 可以修剪但很乏味,而且您无法对视频分割点进行亚秒级控制。 我在找到了一些 appleScript 来调用 ...
本文首先研究使用Python语言和OpenCV对数字高程图DEM,运用高斯核、阈值化、以及形态学中的开运算、闭运算、对图像进行分割、边缘提取、提取建筑物轮廓,并将其组织成顶点和线段的矢量格式,输出成为矢量化数字地图...
For English readme content, please roll down. ####这是一个建立在HMM模型上的中文分词程序 ######程序说明: 本程序基于python2.7.10 windows...用来在不同的语料格式之间做转换。 eval目录下是一个分词评价脚本,可
一个 Python 脚本,用于获取一系列图像/图层并将它们与图块集一起转换为平铺文件。 我正在做一个项目,并在矢量艺术程序中创建了一个具有多层(地板、墙壁、门、物体等)的地图。 当我想将其导入到 tilemap 程序...
将PDF转换为图像并将图像转换为PDF 小册子拼版,裁剪和修剪PDF 旋转PDF 将页码,水印,色彩或其他文本和图形添加到PDF 将Quartz过滤器应用于PDF 读取和写入元数据(例如作者,创建者,目录)到PDF 这一切都是...