写本文的思路很简单:

自己是一个小说迷,有时候就想着能不能把一个整本的小说给分割成一个个单章存在的文本文件

之前也在网上找到过别人写的软件,然后最近突然想到,能否用python实现一下

其实有了这个目标,实现起来很简单:

最核心的就是匹配关键字符串

整体代码如下


# -*- coding: utf-8 -*-
# @Date     : 2018-11-02 17:38:53
# @Author   : Jimy_Fengqi (jmps515@163.com)
# @Link     : https://blog.csdn.net/qiqiyingse
# @Version  : V1.0'''
将txt小说分割转换成单个章节文件
文件名字以章节命名
本文运行在python3上面,
处理小说的时候,需要将小说的格式以utf-8保存
(处理以ANSI编码格式的txt文本会出现错误)
'''import re
import os
import sys# txt book's path.
novel_name='' #小说名字
source_path = os.getcwd()+'\\'+novel_namepath_pieces = os.path.split(source_path)
novel_title = re.sub(r'(\..*$)|($)', '', path_pieces[1])
target_path = '%s\\%s' % (path_pieces[0], novel_title)#小说分章目录
section_re = re.compile(r'^\s*第.+章\s+.*$')# entry of the script
def main():# create the output folderif not os.path.exists(target_path):os.mkdir(target_path)# open the source fileinput = open(source_path, 'r',encoding='utf-8')sec_count = 0sec_cache = []title_cache=[]output = open('%s\\前言.txt' % (target_path), 'w',encoding='utf-8')preface_title = '%s 前言' % novel_titleoutput.writelines(preface_title)for line in input:# is a chapter's title?#if line.strip() == '':  #去掉空行#    passif re.match(section_re, line):line = re.sub(r'\s+', ' ', line)print ('converting %s...' % line)output.writelines(sec_cache)output.flush()output.close()sec_cache = []sec_count += 1#chapter_name=re.sub('(~|!+|\(+|\)+|~+|\(+|\)+|(+|!+)','_',line)chapter_name=re.sub('(~+|\*+|\,+|\?+|\,+|\?+)','_',line)#章节名字当文件名字时,不能有特殊符号# create a new sectionoutput = open('%s\\%s.txt' % (target_path, chapter_name), 'w',encoding='utf-8')output.writelines(line)title_cache.append(line+'\n')else:sec_cache.append(line)output.writelines(sec_cache)output.flush()output.close()sec_cache = []# write the menuoutput = open('%s\\目录.txt' % (target_path), 'w',encoding='utf-8')menu_head = '%s 目录' % novel_titleoutput.writelines(menu_head)output.writelines(title_cache)output.flush()output.close()inx_cache = []print ('completed. %d chapter(s) in total.' % sec_count)if __name__ == '__main__':main()

[python小工具]小说分割器相关推荐

  1. 【Python小工具】若干图片合并生成动态图(.gif)

    相信很多学生党.上班族在日常的学习.科研.办公中总会有一些比较特殊的需求,本人作为一个理工科(非计算机相关专业)学生和大家一样.有时好不容易找到了比较心仪的工具,却发现还要收费,质量和使用的便捷性也不 ...

  2. python小工具myqr生成动态二维码

    python小工具myqr生成动态二维码 (一)安装 (二)使用 (一)安装 命令: pip install myqr 安装完成后,就可以在命令行中输入 myqr 查看下使用帮助: myqr --he ...

  3. 自己整理实现的python小工具

    文章目录 记录一些自己整理实现的python小工具 python获取文件路径 pytho使用opencv进行图像拼接 记录一些自己整理实现的python小工具 python获取文件路径 因为有的程序需 ...

  4. python小工具—图片转为字符txt

    python小工具-图片转为字符txt 图片转为字符txt python小工具-图片转为字符txt 效果展示 转换图片信息 图片信息转字符 完整代码 效果展示 转换图片信息 将图片的rgb色彩信息转为 ...

  5. 微信小程序小说阅读器/在线故事阅读丨可以android studio运行

    <微信小程序小说阅读器+后台管理系统|前后分离VUE>该项目含有源码.论文等资料.配套开发软件.软件安装教程.项目发布教程等 本系统包含微信小程序前台和Java做的后台管理系统,该后台采用 ...

  6. 自制python小工具(3)——Gadgets1.1

    自制python小工具(3)--Gadgets 1.1 文章目录 自制python小工具(3)--Gadgets 1.1 1. 前言 2. 功能实现 2.1 主程序界面 2.1.1 标签与按钮 2.1 ...

  7. python小工具之pdf转excel

    python小工具记录 #xlwt只支持后缀xls文件 不支持xlxs文件 #openpyxl不支持xls文件 支持xlxs文件 import pdfplumber import xlwt wb = ...

  8. Python小工具之翻译词典

    Python小工具之翻译词典 功能实现:请求网易有道词典的接口,获取翻译结果 代码如下: # -*- coding:utf-8 -*- """ Python制作翻译词典 ...

  9. 微信小程序小说阅读器+后台管理系统|前后分离VUE

    <微信小程序小说阅读器+后台管理系统|前后分离VUE>该项目含有源码.论文等资料.配套开发软件.软件安装教程.项目发布教程等 本系统包含微信小程序前台和Java做的后台管理系统,该后台采用 ...

  10. Python小工具——唐诗三百首朗读

    Python小工具--唐诗三百首朗读 工具简介 系统语音朗读唐诗三百首,可自己选择要朗读的唐诗,可搜索查找唐诗进行朗读,可用于幼儿园或小学生熟悉唐诗,积累文学素养. 工具界面 1.打开工具 可查看当前 ...

最新文章

  1. 学习笔记:深度学习中的正则化
  2. 服务器安全狗V4.1增强版 新增修复多项功能
  3. docker 不使用缓存重建镜像
  4. 【Linux】一步一步学Linux——pstack命令(261)
  5. xp系统蓝屏代码7b_遇到系统问题,三种常见处理方法你更pick谁
  6. Redis跳跃表详解
  7. asp.net 中ascx、asmx、ashx等文件类型说明
  8. 18.phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613)
  9. html5控制符置于底层,HTML5占位符在焦点上消失
  10. java输出目录节点_节点如果不存在,如何创建目录?
  11. (XWZ)的python学习笔记Ⅳ——错误、调试和测试
  12. Python百度文库爬虫终极版
  13. transform.forward和vector3.forward的使用区别
  14. python从右侧向左第三个字符_字符串是一个字符序列,例如,字符串s,从右侧向左第3个字符用什么索引?_学小易找答案...
  15. 腾讯笔试算法题-开锁
  16. java 离线语音合成_Android Studio百度离线语音合成集成
  17. 前端---------了解前端
  18. L1-021 重要的话说三遍 (5 分)
  19. 机器学习BP算法及矩阵求导
  20. ZYNQ7000 Vivado详细教学步骤

热门文章

  1. scratch编程——一个列表实现经典扫雷游戏
  2. win10背景色改成豆沙绿,解决锁屏后失效方法
  3. 如何安装.nupkg文件
  4. imx385驱动、imx307驱动、imx327驱动调试记录
  5. Python3中urllib详细使用方法(header,代理,超时,认证,异常处理)
  6. 几款实用Chrome插件
  7. 社区养老管理系统开发满足老年人多样化、多层次的需求
  8. 最详细的Quartus + Modesim完整波形仿真过程
  9. 使用COOC软件绘制复杂网络
  10. 【图解深度学习】【章节:1-1.2 | 神经网络输入输出】连小学生都能看懂的深度学习基础总结