用python格式化小说txt
下载了《无人生还》的txt版。传到手机,发现阅读器识别得不够好。
原文格式如下:
第一章
一
沃格雷夫法官先生新近离任退休,现在正在头等车厢的吸烟室里,倚角而坐,一 边喷着雪茄烟,一边兴致勃勃地读着《泰晤士报》上的政治新闻。
沃格雷夫放下报纸,眺望窗外。列车奔驰在西南沿海的萨默塞特原野儿他看了看 表,还有两小时路程。
沃格雷夫法官先从口袋里掏出一封信。尽管笔迹认不真切,但通篇行文措辞却异 常明确:“亲爱的劳伦斯……分别多年……务请光临印地安岛……景色迷人之至 ……离情别意,又何其多!……往日云烟……人天交融……向阳之乐……12点40 分由帕庭顿车站出发……在橡树桥恭候大驾……具名是位女的,花体签名是:康 斯坦斯卡尔明顿。
沃格雷夫法官先生苦苦思索着末一次见到康斯坦斯卡尔明顿夫人的具体日期,想 必有七年,不,八年了吧!那时她正去意大利准备享向阳之乐,同大自然和田夫 野老融为一体。后来,听说她又向前到了叙利亚,那里的阳光更盛,乐意更浓, 更能同大自然和阿拉伯牧民融为一体。
他想起来了,康斯但斯卡尔明顿就是这种妇女,一个人买上一座小岛住下,那显 得有多么神秘!沃格雷夫法官先生觉得自己推断得这样有理,不禁微微点起头来 。就这样点呀点呀的……。
他睡着了……。
我想要它变成这样子的:
第一章 一 沃格雷夫法官先生新近离任退休,现在正在头等车厢的吸烟室里,倚角而坐,一边喷着雪茄烟,一边兴致勃勃地读着《泰晤士报》上的政治新闻。 沃格雷夫放下报纸,眺望窗外。列车奔驰在西南沿海的萨默塞特原野儿他看了看表,还有两小时路程。 沃格雷夫法官先从口袋里掏出一封信。尽管笔迹认不真切,但通篇行文措辞却异常明确:“亲爱的劳伦斯……分别多年……务请光临印地安岛……景色迷人之至……离情别意,又何其多!……往日云烟……人天交融……向阳之乐……12点40分由帕庭顿车站出发……在橡树桥恭候大驾……具名是位女的,花体签名是:康斯坦斯卡尔明顿。 沃格雷夫法官先生苦苦思索着末一次见到康斯坦斯卡尔明顿夫人的具体日期,想必有七年,不,八年了吧!那时她正去意大利准备享向阳之乐,同大自然和田夫野老融为一体。后来,听说她又向前到了叙利亚,那里的阳光更盛,乐意更浓,更能同大自然和阿拉伯牧民融为一体。 他想起来了,康斯但斯卡尔明顿就是这种妇女,一个人买上一座小岛住下,那显得有多么神秘!沃格雷夫法官先生觉得自己推断得这样有理,不禁微微点起头来。就这样点呀点呀的……。 他睡着了……。
貌似编辑器做不到这么高级的替换,我要写个小程序了。那就python吧。
python的东西几乎全都忘光了。helloworld、数字转字符串、字符串截取、串内查找、字符串的遍历、文件读写、文件遍历……等等,全都要从网上查找用法。。。
磕磕碰碰地写出来了:
# coding=utf8 def is_section(s):
return (s!='') and (s[0]=='第') and (s[-1]=='章') def is_hz_number(s):
r=(s!='')
for ch in s:
if ('一二三四五六七八九十百'.find(ch)==-1):
r=False
return r def main():
filename='nobody.txt'
output='output.txt'
fp=open(filename, 'r')
fp2=open(output, 'w')
output=''
line_add='' count=0
for line in fp:
line=line.strip('\n')
if (line==''):
last_ch=''
else:
last_ch=line[-1]
# print(last_ch) #获取最后一个字符。支持中文哦~
line_add=line_add+line
if (last_ch in ['。', '”', '?', '!', ':']) or is_section(line_add) or is_hz_number(line_add):
output=line_add
line_add=''
print(output)
fp2.write(output+'\n\n')
count=count+1
# if count>10:
# break
fp2.write(line_add) main()
中间遇到这样的错误:
Traceback (most recent call last):
File "a.py", line 41, in <module>
main()
File "a.py", line 23, in main
for line in fp:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xaa in position 14: illegal m
ultibyte sequence
苦思不得,只好一行行将源TXT文件排除,终于找到问题所在,原来是里面混入了一些乱码,象这样:
。安全,保险!堑模笤谧约杭依镆谎鹊保*
删掉就好了。
另:有个地方不大明白:我在py文件头注明了 utf8 编码格式,在程序中使用了 readline、line[-1]截取、以及其它字符串函数,居然对GBK的文本文件处理得很好,估计这是python3的特性之一吧,我误打误撞地成功了。
(注:本文毫无技术含量,仅做为练手的记录。)
用python格式化小说txt的更多相关文章
- python爬虫小说代码,可用的
python爬虫小说代码,可用的,以笔趣阁为例子,python3.6以上,可用 作者的QQ:342290433,汉唐自远工程师 import requests import refrom lxml i ...
- Python格式化字符串~转
Python格式化字符串 在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作 ...
- Python格式化字符串和转义字符
地址:http://blog.chinaunix.net/uid-20794157-id-3038417.html Python格式化字符串的替代符以及含义 符 号 说 明 ...
- python 格式化 json输出
利用python格式化json 字符串输出. $ echo '{"json":"obj"}' | python -m json.tool 利用python -m ...
- Python爬虫——小说
#encoding:utf8 import re import urllib2 url = 'http://www.23us.com/html/55/55304/' request = urllib2 ...
- python格式化输出【转】
今天写代码时,需要统一化输出格式进行,一时想不起具体细节,用了最笨的方法,现在讲常见的方法进行一个总结. 一.格式化输出 1.整数的输出 直接使用'%d'代替可输入十进制数字: >>> ...
- (转)Python格式化字符 %s %d %f
Python格式化字符 %s %d %f 原文:http://blog.csdn.net/huangfu77/article/details/54807835 格式 描述%% 百分号标记 #就是输出一 ...
- vim调用python格式化json数据
vim调用python格式化json数据 November 30, 2013GNU/Linuxpython3, Vimopenwares python有个标准模块叫json,用于编码/解码,序列化/按 ...
- [20191106]善用column格式化输出.txt
[20191106]善用column格式化输出.txt # man columnDESCRIPTION The column utility formats its input into mu ...
随机推荐
- Linux查看CPU《型号..》《内存..》《硬盘..》《系统..》
1.查看物理cpu个数 grep 'physical id' /proc/cpuinfo | sort -u | wc -l 2.查看核心数量grep 'core id' /proc/cpuinfo ...
- hibernate 学习 一 基本概念
1: Hibernate对JDBC进行封装,以面向对象的方式对关系型数据库进行操作. 2: Hibernate的配置文件: hibernate.properties 或者 hibernate.c ...
- c语言里如何调用汇编里的变量?
c语言里如何调用汇编里的变量? 汇编语言:是声明全局变量 .globl _end_ofs _end_ofs: .word _end - _start c语言:声明这个变量,然后再调用这个变量 void ...
- 【旧文章搬运】PsVoid中IrpCreateFile函数在Win7下蓝屏BUG分析及解决
原文发表于百度空间,2010-04-05========================================================================== 这也许是我 ...
- node.js 安装 和 配置Sublime Text的Node.js
安装node.js 第一步:下载安装文件: https://nodejs.org/en/download/ 第二步:安装nodejs 下载完成之后,双击"node-v6.10.1-x64.m ...
- Cpython 解释器下实现并发编程
背景知识: 顾明思议: 进程即正在执行的一个过程,进程是对正在运行程序的一个抽象. 进程的概念起源于操作系统, 是操作系统最核心的概念,也是操作系统提供的最古老的最重要的抽象概念之一.操作系统的其他所 ...
- LeetCode: 463 Island Perimeter(easy)
题目: You are given a map in form of a two-dimensional integer grid where 1 represents land and 0 repr ...
- java web 学习-网络资源
[网络收集] 1. JavaWeb学习总结——JSP中的九个内置对象 2. Jsp九大内置对象以及四个作用域 他人学习汇总资源 1. http://www.cnblogs.com/xdp-gacl/t ...
- 看后端程序员调试CORS的姿势
# 目录 为什么有同源策略? 需要解决的问题 CORS跨域请求方案 preflight withCredentials 附:高效.优雅地调试CORS实现 为什么有同源策略? 同源策略Sam ...
- memcached 命令详解
memcached::get(); //查找key的值: 例:$mem->get($key): memcached::add() ; //添加,当key存在时,false,当key不存在则执行 ...