vim的确是神器,可惜sed与vim不完全通用。这篇文章受《

用vim对txt格式的小说重新排版》的启发,在此致谢!

经常下载txt的电子书,格式却不合心意,只好自己再处理。首要的就是处理段内换行。

原来的打算是定制一个vim模式,到时候处理小说时进入该模式,再使用各种快捷键。以此避免txt快捷键对日常编程的干扰。后来发现,vim不像emacs,可以定制自己的模式。(可能可以定制专用的vimrc解决,未经尝试)

于是转向脚本寻求解决办法。sed与awk是此中翘楚,首先试试。可惜早些日子学的sed已经忘的差不多了,找不到比较简洁清晰的解决办法。sed与grep类似,先读入一行,删除\n,进行各种处理,最后写入文件,再添上\n。 N可以读入下一行到当前模式匹配空间再行处理。但是我需要对整个文件进行匹配,暂时未找到解决办法。

只好再次转投python。Python有自己的re模块,应该没问题。re.sub可以进行替换。费了些时间的,是对中文的匹配。在vim中,可以用[^\x00-\xff]匹配双字节字符,然而python中却行不通。经过一番google,发现可以用[\x80-\xff]匹配汉字(perl同此,似乎两者对中文的正则支持还是有待改进)。

至此,问题初步解决:

#!/usr/bin/env python

#encoding=utf-8

import re

from sys import argv

if __name__ == '__main__':

if len(argv) != 2:

print 'usage: filename'

else:

fh = open(argv[1], 'r')

content = fh.read()

out = re.sub('\n([\x80-\xff])', r'\1', content)

print out

规范行首:

#!/usr/bin/env python

#encoding=utf-8

import re

from sys import argv

if __name__ == '__main__':

if len(argv) != 2:

print 'usage: filename'

else:

fh = open(argv[1], 'r')

content = fh.read()

out = re.sub(' +([\x80-\xff])', r' \1', content)

print out

当然,下载来的文档通常是GB2312,需要自己转换为utf8再行处理,可以参考我的《python 中文编码笔记》

在win下,有个优秀的文本处理工具可以利用,叫cnbook。在百度的fmddlmyy贴吧可以下载到最新版本。

python对txt分段处理_使用python对txt格式的小说进行处理相关推荐

  1. 怎么退出python命令行cd找到txt文档_《python怎么读取txt文件》

    python怎么创建一个txt文件 python怎么创建txt文件的方法. 如下参考: 1.首用内置的空闲编辑器编辑(单击并选择copy),如下图所示. 2.您可以下载记事本和其他编辑软件,以支持多种 ...

  2. python爬新闻并保存_利用python的scrapy爬取新浪新闻保存至txt

    1.mac本机terminal:scrapy startproject newsSpider 2.pycharm中打开项目,进行爬虫. 2.1在spider文件夹下,建立Spider.py文件,具体如 ...

  3. python分支结构的关键字_学习python分支结构

    学习python分支结构 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  学习python分支结构.txt ] (友情提示:右键点上行txt文档名->目标另 ...

  4. python如何设置rgb颜色_【Python图像处理】RGB颜色转HSV颜色的快速实现

    传送门 思路 使用NumPy.NumPy对数组和矩阵的运算有大幅度的提速.因此,使用NumPy设计算法时,应该充分利用这一特性,尽可能用NumPy中的矩阵运算来代替遍历等耗时的操作. RGB转HSV ...

  5. python文本结构化处理_在Python中标记非结构化文本数据

    python文本结构化处理 Labelled data has been a crucial demand for supervised machine learning leading to a n ...

  6. python交互式和文件式_使用Python创建和自动化交互式仪表盘

    python交互式和文件式 In this tutorial, I will be creating an automated, interactive dashboard of Texas COVI ...

  7. python爬取微博评论_用 python 爬取微博评论并手动分词制作词云

    最近上海好像有举行个什么维吾尔族的秘密时装秀,很好看的样子,不过我还没时间看.但是微博上已经吵翻了天,原因是 好吧,这不是我们关心的,我的心里只有学习 我爱学习 Python 爬虫 本次爬取的是这条微 ...

  8. python如何读取文件数据恢复_删python目录

    Python学习笔记 (1)Hello World(环境搭建+输出Hello World!) 随想 高考发挥失常.科三遇火车发挥失常,各种不顺--突然发现假期都快没了,才想起高考前想象的这个假期要做的 ...

  9. python做审计底稿视频_最新Python教学视频,每天自学俩小时,让你offer拿到手软...

    2020最新Python零基础到精通资料教材,干货分享,新基础Python教材,看这里,这里有你想要的所有资源哦,最强笔记,教你怎么入门提升!让你对自己更加有信心,重点是资料都是免费的,免费!!! 如 ...

最新文章

  1. python界面设置-Python进入后台界面(admin)设定
  2. Mysql数据库基础(一)基本概述、构建服务、基本管理、数据类型
  3. MySQL - InnoDB特性 - Buffer Pool漫谈
  4. MaxCompute - ODPS重装上阵 第三弹 - 复杂类型
  5. JavaScript中的arguments对象
  6. SQL Relay 0.49 发布,SQL 中间层
  7. oracle concepts中文,Oracle Concepts 中英文对照版 (10g R2)
  8. 指纹对比软件_杰恩世软件平台钢片AOI检测应用
  9. openmv探索_2_追踪单颜色
  10. [转贴]记那对住在我隔壁储藏室的大学刚毕业的小夫妻
  11. 基于ESP-IDF环境的ESP32-C3开发之No such file or directory
  12. 建立时间与保持时间计算
  13. Xilinx SRIO_gen2关于时钟的问题
  14. android 拼音检索汉字,android实现汉字转拼音功能 带多音字识别
  15. 国外著名大学网络课堂
  16. 密码学速查笔记(一)-- 分组对称加密
  17. unity抠人像原理_抠出精细发丝人像图片的PS抠图教程
  18. 海外试玩推广渠道汇总
  19. 18.鸡尾酒疗法C语言
  20. AMap初级实战之二(MoveAnimation moveTo、moveAlong)

热门文章

  1. MySQL在线安装(centos)
  2. Git代码版本控制工具
  3. 用“AI核弹”饱和攻击的英伟达,如何赢下AI计算新赛场?
  4. Xcode 下载汇总
  5. 为何一页的本科简历可以打败研究生
  6. 解决安装Ubuntu时鼠标无法移动,卡Logo的问题
  7. CentOS7 离线安装 Zabbix5.0
  8. (转)图解Intel电脑组装过程
  9. 【虚幻引擎UE】UE4/UE5 新人科普向
  10. 玩转小程序会员营销管理,四点准则要牢记