简易TXT文本小说阅读器
上次学习爬取小说保存到txt文本文件,方便离线阅读,现在做一个简易TXT文本小说阅读器,支持手动翻页和自动翻页阅读。
废话不多说,直接上代码,实践下。
read_txt.py:
import time def read_txt_book(file_path, start_str, per_line=3, auto_flag=False, sleep_time=3):
'''
@方法名称: TXT文本小说阅读器
@中文注释: 读取txt文本工具,自动,手动翻页
@入参:
@param file_path str 文件路径
@param start_str str 开始读取字符串
@param per_line int 每次读取行数
@param auto_flag bool 是否自动翻页
@param sleep_time int 自动翻页休眠时间(秒)
@出参:
@返回状态:
@return 0 失败或异常
@return 1 成功
@返回错误码
@返回错误信息
@param rsp_dict dict 响应容器
@作 者: PandaCode辉
@创建时间: 2023-09-08
@使用范例: read_book('1.txt')
''' try:
if (not type(file_path) is str):
return [0, "111111", "文件路径参数类型错误,不为字符串", [None]]
if (not type(start_str) is str):
return [0, "111112", "开始读取字符串参数类型错误,不为字符串", [None]] with open(file_path, mode='r', encoding="utf-8") as f:
'''
seek() 函数用于移动文件指针到文件的指定位置
f.seek(offset, whence), f指的是file(或$你的文件名)
Parameters:
offset: 将光标向前移动n个位置
whence: 参考位置,一般参数为0, 1, 2
0 :将开头作为参考位置
1 :将当前作为参考位置
2 :将末尾作为参考位置
'''
f.seek(0, 2)
# tell() 函数用于判断文件指针当前所处的位置
# 读取文章最末尾的光标位置
end_position = f.tell()
print(end_position)
# 将光标移动到文件的开头
f.seek(0, 0)
# 开始读取字符串不为空
if start_str != "":
line_position = 0
while True:
line = f.readline()
line_position += 1
if start_str in line:
print(f"第 {line_position} 行,内容为:{line.strip()}")
break
# 读取文章当前的光标位置
now_position = f.tell()
# 判断光标是否到文章最末尾
if now_position == end_position:
print('已读完')
break
# 判断是否自动阅读模式
if auto_flag:
while True:
for i in range(per_line):
print(f.readline(), end='')
# 读取文章当前的光标位置
now_position = f.tell()
# 判断光标是否到文章最末尾
if now_position == end_position:
print('已读完')
break
else:
# 休眠时间-3秒
time.sleep(sleep_time)
else:
while True:
# 读取文章当前的光标位置
now_position = f.tell()
# 判断光标是否到文章最末尾
if now_position == end_position:
print('已读完')
break
else:
# 翻页提示符
num_next = input('输入n翻下一页:')
if num_next == 'n':
for j in range(per_line):
print(f.readline(), end='')
else:
print('输入错误,请重新输入')
# 返回容器
return [1, '000000', '读取txt文本工具', [None]] except Exception as e:
print("读取txt文本工具异常," + str(e))
return [0, '999999', "读取txt文本工具异常," + str(e), [None]] # 查找文本文件中的指定字符串,若存在,输出所在的函数
# file_path ———— 文本文件路径
# string ———— 指定要查找的字符串
def TextFileSearch(file_path, start_str):
with open(file_path, 'r', encoding='utf-8') as f:
line_position = 0
for line in f.readlines():
line_position += 1
if start_str in line:
print(f"第 {line_position} 行,内容为:{line.strip()}")
break # 主方法
if __name__ == '__main__':
file_path = '重生八八从木匠开始.txt'
start_str = '第392章'
# 查找文本文件中的指定字符串位置
# TextFileSearch(file_path, start_str)
# 读取txt文本工具
read_txt_book(file_path, start_str, auto_flag=True)
简易TXT文本小说阅读器的更多相关文章
- PC免费的小说阅读器,可提取章节
最近自己做了个小说阅读器,就是下面这个东西啦,目前仅支持Window系统: 个人喜欢在电脑.平板上等大屏幕设备上阅读小说或电子书籍.原因其一是屏幕足够大,可以选择更舒服的字体大小:其二是觉得小屏幕看字 ...
- 读取本地HTML的小说阅读器应用源码项目
该源码是一个不错的读取本地HTML的小说阅读器,读取本地HTML的小说阅读器,并且源码也比较简单的,非常适合我们的新手朋友拿来学习,有兴趣的朋友研究下. 源码下载: http://code.662p. ...
- 开发微信小程序——古龙小说阅读器
概述 由于面试的关系接触了一下微信小程序,花了2晚上开发了一个带书签功能的古龙小说阅读器,并且已经提交审核等待发布.这篇博文记录了我的开发过程和对微信小程序的看法,供以后开发时参考,相信对其他人也有用 ...
- android优化中国风应用、完整NBA客户端、动态积分效果、文件传输、小说阅读器等源码
Android精选源码 android拖拽下拉关闭效果源码 一款优雅的中国风Android App源码 EasySignSeekBar一个漂亮而强大的自定义view15 android仿蘑菇街,蜜芽宝 ...
- Vue小说阅读器(仿追书神器)
一个vue阅读器项目,目前已升级到2.0,阅读器支持横向分页并滑动翻页(没有动画,需要动画的可以自己设置,增加transitionDuration即可) 技术栈 vue全家桶+mint-ui gith ...
- s3c2440 上txt 小说阅读器
文件结构 Makefile: CROSSCOMPILE := arm-linux- CFLAGS := -Wall -O2 -c LDFLAGS := -lm -lfreetype CC := $(C ...
- 【android开发】小说阅读器
新人开发理念 1 activity 是每个功能页面的入口 2 动画效果需要配合资源文件中,动画的定义 3 文件的读取是有权限控制的 4 布局应该尽量简单,这样才能让程序跑的飞快 前记 重新开始一个新的 ...
- UWP_小说在线阅读器:功能要求与技术要求
学了WP开发也有一年了,也没做过什么软件的.17年进发UWP,锻炼自己一下.做一个开源的小说阅读器吧. 既然开发一个软件.所以要设计一下吧. 功能要求: 可能要用到的技术,这个吗,这就是遇到问题在解决 ...
- 电子书及阅读器Demo
电子书阅读器(Kindle,电子纸技术.LCD.电子墨水技术等: 亚马逊/当当网站) 电子书产业可分5大环节:内容供应商.数字格式制作商.内容流通服务平台.传输平台以及终端阅读器产品. 全球电子书市 ...
- android小说阅读源码、bilibili源码、MVP新闻源码等
Android精选源码 一款基于 MVP+RxJava2+Retrofit2 的应用--熊猫眼 android 五子棋源码分享 android实现全国地图点击效果 android实现立体图案绘制的代码 ...
随机推荐
- [.NET] API网关选择:YARP还是Ocelot?
API网关选择:YARP还是Ocelot? 摘要 随着微服务架构的流行,API网关在系统架构中扮演着越来越重要的角色.在.NET生态中,YARP(Yet Another Reverse Proxy)和 ...
- 开源flux适配昇腾NPU分享,体验120亿参数AI文生图模型
这一期我们分享一位开源开发者参与flux适配昇腾NPU的实践经验,欢迎广大开发者对华为技术栈适配进行讨论. 开源适配实践 flux是一个AI图像生成模型,有120亿参数量,具有大量的用户基础,可以根据 ...
- R语言系列—R语言简介及安装
同学们,大家好,今天开始开设一个新系列,R语言系列,对生信分析中涉及到的R语言代码及R语言绘图进行详细讲解,感兴趣的同学可以重点关注一下. 什么是R语言? R语言是用于统计分析.绘图的语言和操作环境. ...
- G1原理—6.G1垃圾回收过程之Full GC
大纲 1.FGC的一些前置处理 2.FGC的整体流程 3.传统FGC只能串行化 + G1的FGC可以并发化 4.并行化FGC之并行标记 + 任务窃取 5.并行化FGC之跨分区压缩 + 避免对象跨分区 ...
- HBase-2JavaAPI操作
HBase是一个分布式的NoSql数据库,在实际工作当中,我们一般都可以通过JavaAPI来进行各种数据的操作,包括创建表,以及数据的增删改查等等 1 创建maven工程 讲如下内容作为maven工程 ...
- python脚本抓取省市县区乡镇村庄(五级行政区划)
用python脚本抓取省市县区乡镇村庄(五级行政区划)的过程如下: 1,抓取国家统计局官网上的行政区划名称和对应的代码(5级是不同的网页,所以涉及多层跳转): 2,数据量大约几十万条,频繁访问考虑防屏 ...
- excel表格里面数据统计有几个(相同的算1个)
例如:1 2 3 4 5 6 7 1 2 3 统计出来的结果 是 7个! 相同的算1个. 假设数据在A1:A10区域内,在B1单元格中显示结果,则在B1单元格中输入公式: =SUMPRODUCT(1/ ...
- Secure Face Matching Using Fully Homomorphic Encryption-2018:学习
本文学习论文"Secure Face Matching Using Fully Homomorphic Encryption-2018"和"基于全同态加密的人脸特征密文认 ...
- C:条件编译
问题 #ifdef HELIB_DEBUG long pa, pb; std::vector<long> slots; decryptBinaryNums(slots, a, *dbgKe ...
- Kotlin:【接口】【抽象类】