文章目录

  • 前言
  • 数据分析
  • 开始编程
    • 打开文件
    • 筛选出所有人物对话
    • 筛选出字数符合要求的句子
  • 代码运行效果

前言

随便记一下写这个程序的过程,对新学到的东西做个笔记。

一直很喜欢《大道争锋》这本小说,尤其是误道者文字间的古风韵味以及时不时来一首颇具仙风道骨的诗歌。于是在二刷之后有了将这些诗歌做个摘抄的想法,奈何《大道争锋》全文700万字,要再刷一次去摘抄诗句的工作量不小,所以我就有了用Python帮我摘抄的想法。

数据分析

首先,程序的判定非常死板,所以我们的原文资源一定要好,不要有什么奇奇怪怪的字符或者标点符号有问题。

之后我们观摩一下目标数据:诗句的特征。


我们机智地发现,所有诗句都是由书中人吟诵出来的,所以诗句都是由双引号括起来的。同时,诗句的字数都很工整,均为五个字五个字或者七个字七个字。

(本来还想加一个判断押韵,连pypinyin都装好了,但是押韵的判断并没有想象中的简单,而之前的判断条件对于小说文本来说已经足够严格,漏网之鱼很少,所以就没有加)

开始编程

打开文件

首先把文本文件打开,由于是中文,使用了UTF-8编码,所以不能直接打开,否则只能读出一堆乱码。

f=open('DDZF.txt','r',encoding='utf8')

其中,'DDZF.txt'是要打开的文件名称,'r'表示只读,encoding='utf8'则是文件对应的解码。

更多的读写模式指令详见下图:

筛选出所有人物对话

打开了文件之后,还需要把文件的内容读进来,因为整个文本对于计算机来说比较小,所以这里我选择了f.read()直接把所有文本读入,之后还会有f.readline()f.readlines()等文件读入函数。

主要就是判断引号括起来的部分,比较简单,用一个flag变量就解决了,要做笔记的主要是对汉字的判断:

def is_Chinese(ch):return '\u4e00'<=ch<='\u9fff'

至于符号的判断,Python实际有更简洁的写法,我用的则是Python版的C艹写法,在后面会有改进。

另外,为了方便判断,我将所有符号都替换为了'*',在最后输出的时候会重新还原。

代码:

#筛选出人物说的话,替换其中标点
fuhao=[',','。','?','!']
def is_fuhao(ch):for fh in fuhao:if ch==fh:return True
def is_Chinese(ch):return '\u4e00'<=ch<='\u9fff'
txt=[]
tmp=[]
flag=0
for ch in f.read():if ch=='“':flag=1if is_Chinese(ch) and flag==1:tmp.append(ch)if is_fuhao(ch) and flag==1:tmp.append('*')if ch=='”':flag=0txt.append("".join(tmp))tmp=[]
f.close()

存入的时候,我把tmp从列表转换为了字符串,用到的语句为"".join(),其中双引号括起来的部分为拼接字符串时,列表中各个元素之间的间隔符号,由于这里是中文拼接,不需要间隔,直接为空就行了。括号里的内容则是要转化的列表名称。

其实这是个小失误,应该直接把tmp以列表的形式appendtxt里,将它转化为字符串其实是多此一举了。

筛选出字数符合要求的句子

前面也说了,因为是正常的小说文本,用字数来筛选已经足够严格,我们只需要判断这些人物说的话里有没有五个字五个字一组或者七个字七个字一组的就已经足够把诗句筛选出来了。

类似的,用f=open('out.txt','w')打开/创建一个输出文件,然后用f.write()写入文件。这里就可以看到,为了将字符串里的'*'修正回来,我先转成了列表,修改完再转回字符串,就是因为之前的“多此一举”。

#处理出字数符合要求的句子
def reload(s):flag=0for i in range(len(s)):if s[i]=='*':if flag:s[i]='。'else :s[i]=','flag=1-flagreturn "".join(s)
f=open('out.txt','w')
for sen in txt:lenth=0poem=1cntfh=0for ch in sen:lenth+=1if ch=='*':cntfh+=1if lenth!=8 and lenth!=6:poem=0breaklenth=0if poem and (cntfh==4 or cntfh==6 or cntfh==8):f.write(reload(list(sen)))f.write('\n')
f.close()

代码运行效果

他人以鼎劝莫争,我却以鼎淬元真。凡心妄演天机道,一番算计空付樽。
摩天弄云霭,食气吞仙斋。浩然朔罡风,决荡天门开。
足踏仙云游八荒,银河星汉渡险隘。若要问那长生果,有缘可来补天斋。
混沌辟生无贵贱,岂叫神人坐金殿。若得一口仙灵气,敢上九天争日月。
我本凡人磨岁寿,困拘庐中不知愁。忽闻仙人阁上坐,蓬莱山外寻天楼。
七星束阳袍,百炼火中烧。莫道形不伤,人劫最难逃。
长河奔流入海西,东来水分清浊气。漫渡急浪覆云履,脚踏罡斗握玄机。
法象竞日出,乾坤定宏图。今日脱劫去,飞身上天庐。
萤流举轻舞,星汉去寂心。横江照夜火,万里烛幽冥。
二十年来藏剑锋,忽起长歌神鬼惊。大道苍茫斩歧路,笑看沧海听雷音。
百炼功成道家果,乾坤自在手中握。日月轮转星流火,瞒天夺寿劫法螺。万浪千礁齐踏破,长生无悔笑蹉跎。
清风扶我上九天,此去浮云织彩间。由来逍遥是神仙,一梦回首已千年。
恩师飞升前,曾让我带话与你。说今时不同往日,能放手便放手吧。
阴阳两气参性命,精元藏胸演五行。神意巍然攀山岭,擎天柱里炼罡英。九霄云中鸣剑音,扫荡妖氛涤气净。心有冲天龙虎意,倒海翻江还天青。
双月映卿水,倾城何独怨。对影如不见,画镜照寂怜。
花愁岁月催色残,谁人听怨道哀怜。漫起香阵蔽星汉,罗带抟风改天颜。
灵珠牝牡化界方,一十六法俱收藏。采撷清气度真法,反演星斗会天象。
杀便杀了吧,把尸体留着。峨山派若有人来,交给他们就是了。
乾坤两分气化真,五龙五行炼法身。身若天柱立昆仑,心盘海山镇劫尘。今朝神屋诛天妖,他日天外斩鬼神。
今日乘风去,舍身了尘扰。明朝得金丸,再入神仙道。
龙头于北饮苍澜,龙尾在南戏寒山。乾坤一动风云变,造化无情天道玄。
龙渊倒悬潮升烟,大滔横流三千年。唤得清澜洗日月,长空一相水齐天。
不堕轮回入大千,心传一道在人间。愿起一剑杀万劫,无情换作有情天。
驱鬼惑人为下道,呼风唤雨为上道。养生调元为小道,长生逍遥为大道。
此身入道五百载,志气长存星斗移。当啸长歌舒胸臆,云霄一气动天地。
少年轻负剑,玄崖寻仙楼。一朝得闻道,畅然天地游。平生舒快意,狂笔写春秋。长生非我愿,只解心中忧。
仰吞初阳火,炼得天魔身。倒卷地灵气,相成阴中神。
一播阳火转朱丹,点破玄冥赤火鸾。红尘解炼去凡身,金阳吐灿开霄汉。
霍真人成就法相,实为我溟沧兴事。以恩师之见,那法相当作何称。
守得灵心见月明,四海潮冲蜕鳍鳞。神通本是石人授,玉磬敲动龙门音。
十万心界量玄关,一剑横光丈千秋。只手拨得天惊弦,搅彻周天乱星汉。
人间本来多磨难,百砺心劫方圆满。采得一风生玄翼,拂去尘身踏仙关。
独上万山巅,孤扣大道钟。千波留不住,淡看云匆匆。衣角拭顽心,尘落显真容。任他风雷雨,鹤徊九云中。
方才我已试过了,这岛上煞气极重。会消磨灵机,可无法吐纳调息。
本是草莽一生灵,石人解玄方辨情。身散气化心未休,一脉当传万载名。
虚空落神精,化气散微尘。功成六转境,百劫不磨身。嘘呵天地气,一力定乾坤。
小舟渡幼鸿,扶翼入云岸。寒山乌云暖,执剑掌幽谭。苍海青天外,鸣声阵阵来。蓦然轻风雨,云破雁飞还。
举手撑天岳,足量九地宽。含烟定四海,吐气动万山。
青桐山下日月藏,斩却前身渡玄航。龙血炼气万化生,神目一开转阴阳。
十二重关载道传,紫气胎里种玄元。摘落真花见根果,拭去凡尘天外仙。
在言语之前,可立下法契。你不放心我,我亦不会放心你。
一气鸿濛演乾坤,问道诸寰斩二身。万法不沾神自定,与天同寿洞玄真。
元海凭舟渡灵真,造化为炉炼法身。一气贯通诸天界,乾坤同和演玄神。
拂清宙黯见神空,始知两界此源同。力撼周宇破天壁,终从一元道法宏。
玄波瑶台服灵种,凝光映霄见明空。甘露洗玉含清丹,天河流裳仙影从。
念成虚空照心景,意作金炉筑玄经。一言可定天地法,身举清光兴万灵。
浑中鉴真开神目,气意显冲散龙图。身去诸天问玄法,从此不言大道孤。
正气浩荡人法宏,齐诵道章九洲同。清阳悬空临绝顶,明照天下万景从。
我听你方才言论,似论及栖霞仙子。观你们行途匆匆,又是要往哪里去。
会炼诸空渡世人,名称太上大道尊。莫道青天无始终,造化门中神常存。
昔闻上法曾授命,才得天火炼真金。长歌一曲问世情,只斩凡身不斩心。
两世持存含灵珠,万般磨炼后人书。洗去心垢抛旧身,天人自此无殊途。
避绝万劫心在前,虚空常渡化未先。往来过去皆落意,神横诸世气倾天。
万劫渡磨入世身,诸常洗却旧顽真。道本无名神自主,莲台座上又一人。
无心亦无定,无常亦无名。神空一意转,不变是顽精。
尘心不觉难自悟,辟开人间通天路。惟愿众生皆长生,穹霄万古执道主。
万顷仙波去,千湖返灵光。玄机天地生,乾坤书道章。

共筛选出57首诗,其中6只巧合而成的漏网之鱼,准确率有90%,由于数据量较小,可以采用人工剔除的办法,得到最终结果:

他人以鼎劝莫争,我却以鼎淬元真。凡心妄演天机道,一番算计空付樽。
摩天弄云霭,食气吞仙斋。浩然朔罡风,决荡天门开。
足踏仙云游八荒,银河星汉渡险隘。若要问那长生果,有缘可来补天斋。
混沌辟生无贵贱,岂叫神人坐金殿。若得一口仙灵气,敢上九天争日月。
我本凡人磨岁寿,困拘庐中不知愁。忽闻仙人阁上坐,蓬莱山外寻天楼。
七星束阳袍,百炼火中烧。莫道形不伤,人劫最难逃。
长河奔流入海西,东来水分清浊气。漫渡急浪覆云履,脚踏罡斗握玄机。
法象竞日出,乾坤定宏图。今日脱劫去,飞身上天庐。
萤流举轻舞,星汉去寂心。横江照夜火,万里烛幽冥。
二十年来藏剑锋,忽起长歌神鬼惊。大道苍茫斩歧路,笑看沧海听雷音。
百炼功成道家果,乾坤自在手中握。日月轮转星流火,瞒天夺寿劫法螺。万浪千礁齐踏破,长生无悔笑蹉跎。
清风扶我上九天,此去浮云织彩间。由来逍遥是神仙,一梦回首已千年。
阴阳两气参性命,精元藏胸演五行。神意巍然攀山岭,擎天柱里炼罡英。九霄云中鸣剑音,扫荡妖氛涤气净。心有冲天龙虎意,倒海翻江还天青。
双月映卿水,倾城何独怨。对影如不见,画镜照寂怜。
花愁岁月催色残,谁人听怨道哀怜。漫起香阵蔽星汉,罗带抟风改天颜。
灵珠牝牡化界方,一十六法俱收藏。采撷清气度真法,反演星斗会天象。
乾坤两分气化真,五龙五行炼法身。身若天柱立昆仑,心盘海山镇劫尘。今朝神屋诛天妖,他日天外斩鬼神。
今日乘风去,舍身了尘扰。明朝得金丸,再入神仙道。
龙头于北饮苍澜,龙尾在南戏寒山。乾坤一动风云变,造化无情天道玄。
龙渊倒悬潮升烟,大滔横流三千年。唤得清澜洗日月,长空一相水齐天。
不堕轮回入大千,心传一道在人间。愿起一剑杀万劫,无情换作有情天。
驱鬼惑人为下道,呼风唤雨为上道。养生调元为小道,长生逍遥为大道。
此身入道五百载,志气长存星斗移。当啸长歌舒胸臆,云霄一气动天地。
少年轻负剑,玄崖寻仙楼。一朝得闻道,畅然天地游。平生舒快意,狂笔写春秋。长生非我愿,只解心中忧。
仰吞初阳火,炼得天魔身。倒卷地灵气,相成阴中神。
一播阳火转朱丹,点破玄冥赤火鸾。红尘解炼去凡身,金阳吐灿开霄汉。
守得灵心见月明,四海潮冲蜕鳍鳞。神通本是石人授,玉磬敲动龙门音。
十万心界量玄关,一剑横光丈千秋。只手拨得天惊弦,搅彻周天乱星汉。
人间本来多磨难,百砺心劫方圆满。采得一风生玄翼,拂去尘身踏仙关。
独上万山巅,孤扣大道钟。千波留不住,淡看云匆匆。衣角拭顽心,尘落显真容。任他风雷雨,鹤徊九云中。
本是草莽一生灵,石人解玄方辨情。身散气化心未休,一脉当传万载名。
虚空落神精,化气散微尘。功成六转境,百劫不磨身。嘘呵天地气,一力定乾坤。
小舟渡幼鸿,扶翼入云岸。寒山乌云暖,执剑掌幽谭。苍海青天外,鸣声阵阵来。蓦然轻风雨,云破雁飞还。
举手撑天岳,足量九地宽。含烟定四海,吐气动万山。
青桐山下日月藏,斩却前身渡玄航。龙血炼气万化生,神目一开转阴阳。
十二重关载道传,紫气胎里种玄元。摘落真花见根果,拭去凡尘天外仙。
一气鸿濛演乾坤,问道诸寰斩二身。万法不沾神自定,与天同寿洞玄真。
元海凭舟渡灵真,造化为炉炼法身。一气贯通诸天界,乾坤同和演玄神。
拂清宙黯见神空,始知两界此源同。力撼周宇破天壁,终从一元道法宏。
玄波瑶台服灵种,凝光映霄见明空。甘露洗玉含清丹,天河流裳仙影从。
念成虚空照心景,意作金炉筑玄经。一言可定天地法,身举清光兴万灵。
浑中鉴真开神目,气意显冲散龙图。身去诸天问玄法,从此不言大道孤。
正气浩荡人法宏,齐诵道章九洲同。清阳悬空临绝顶,明照天下万景从。
会炼诸空渡世人,名称太上大道尊。莫道青天无始终,造化门中神常存。
昔闻上法曾授命,才得天火炼真金。长歌一曲问世情,只斩凡身不斩心。
两世持存含灵珠,万般磨炼后人书。洗去心垢抛旧身,天人自此无殊途。
避绝万劫心在前,虚空常渡化未先。往来过去皆落意,神横诸世气倾天。
万劫渡磨入世身,诸常洗却旧顽真。道本无名神自主,莲台座上又一人。
无心亦无定,无常亦无名。神空一意转,不变是顽精。
尘心不觉难自悟,辟开人间通天路。惟愿众生皆长生,穹霄万古执道主。
万顷仙波去,千湖返灵光。玄机天地生,乾坤书道章。

这或许是全网最全《大道争锋》诗集?[doge]

用Python摘抄《大道争锋》中的诗句相关推荐

  1. 大道争锋手游如何在电脑上玩 大道争锋手游拟器教程

    <大道争锋>是一款国风修仙问道题材MMORPG手游,真实还原古代传奇山海经里的神话仙侠故事背景,全新演绎骑战的手游时代,各种畅快淋漓纯武侠战斗将给你带来一场场超震憾完美的另类修仙世界体验. ...

  2. c++ cef 获取内容_敢达争锋对决NT敢达C装备增援活动进行中!

    <敢达争锋对决>3月新机「NT敢达-C装备」已经正式上线!与此同时,我们也将带来帮助各位指挥官快速获得并提升「NT敢达-C装备」的限时增援活动!福利满满不容错过~!活动时间:3月1日-3月 ...

  3. python 字符串操作速度_强者一出,谁与争锋?与Python相比,C+的运行速度究竟有多快?|python|编程语言|字符串|示例|算法...

    对于数据科学家而言,热爱Python的理由数不胜数.但你是否也曾问过这样的问题:Python和C或C++等更专业的低级编程语言究竟有何不同呢?我想这是很多数据科学家或者Python用户曾经问过或者将来 ...

  4. ChatGPT 不是终点:阿里不出,谁与争锋?

    ChatGPT正在变成一场竞赛,中国企业争先恐后抢发"自研"的ChatGPT,争当所谓的赢家.但实际上,ChatGPT并非竞赛的终点,而是起点,只是堪堪拉开了人工智能新时代的一角序 ...

  5. 场景编程集锦 - 乒坛争锋:孙颖莎vs伊藤美城

    1. 场景描述 孙颖莎和伊藤美诚是世界女子乒坛的顶尖运动员.根据国际乒联2022年11月15日公布的世界排名,孙颖莎位列第一,伊藤美诚排名第五.孙颖莎是中国女子乒乓球队的三大主力,曾获得2020年东京 ...

  6. 阿里平头哥首款CPU芯片发布!5nm倚天710,128核单片600亿晶体管,无人能与争锋...

    李根 鱼羊 博雯 发自 云栖小镇 量子位 报道 | 公众号 QbitAI 倚天一出,谁与争锋? 5nm.单芯600亿晶体管.128核.主频3.2GHz--首战跑分就超出业内标杆20%,能效比提升50% ...

  7. python是干什么用的视频-python基础教程千锋最新视频学完之后可以做什么

    从目前来看,人工智能异常火爆,而Python作为人工智能首选语言自然受到了欢迎,而且Python语言在学术上也很受青睐.就算不是计算机专业的人,很多都在学习python.那么python基础教程千锋最 ...

  8. 谁与争锋-七款杀毒软件比较分析

    焦头烂额的末路英雄-江民KV 有些渐渐陷入泥潭的末路英雄KV,无论是监控还是查杀能力依旧是当今国产杀软中的翘楚,甚至可以勉力和KAV争锋.估计是年纪大了,老得糊涂了,只顾着在盗版的狂潮中穷追猛打,对于 ...

  9. 争锋职考职称计算机,PVP攻略 | 新秀职业的争锋天下?

    原标题:PVP攻略 | 新秀职业的争锋天下? 攻略原创: 硬核S1-九月霜华,安卓S117-守候丶 应用宝S4-竹笙叹丶应用宝S9-浴火 硬核S118-洛九越 不得不说这是一篇值得 收藏的新手(老司机 ...

  10. Python语言在人工智能(AI)中的优势

    本文探讨了Python语言在AI领域的优势与运用. 谁会成为AI 和大数据时代的第一开发语言? 这本已是一个不需要争论的问题.如果说三年前,Matlab.Scala.R.Java 和 Python还各 ...

最新文章

  1. python调用支付宝支付接口详细示例—附带Django demo代码
  2. 打印管理 php,window_强化Windows Server 2008下的打印管理,  打印管理从来都是Windows Se - phpStudy...
  3. jQuery 基础教程 (三)之jQuery的选择器
  4. XML序列化和反序列化 以及相关类的写法
  5. word删除所有的回车、空格
  6. linux安装redis插件,Linux平台安装redis及redis扩展的方法
  7. 计算机应用教程第9,计算机应用教程(第8版)第六章
  8. java中for循环快捷方式_IntelliJ IDEA(快捷键):快速生成各种for循环(示例代码)...
  9. [GitHub][2014-05-13 06:00:39]JavaDsp
  10. 数据库原理 第四章作业
  11. 太原市住房公积金商转公又新增一种担保方式
  12. 将uiimageview设置成纯圆形
  13. mysql emoji表情 保存utf8mb4 错误原因总结
  14. 业内人士坦言——猎头公司做不大
  15. Android系统之ContentObserver和SettingsProvider结合使用(三)
  16. 南邮java实验_南邮JAVA程序设计实验4 线程程序设计(指针式时钟)
  17. 【归并排序】【洛谷】【P1309-瑞士轮】
  18. 高性能国产化信号处理平台国产DSP+FPGA+AI NPU安路紫光方案
  19. Fortran语法汇总(下)(持续更新中)
  20. 【连载】大学物理笔记——第一章末+第二章质点动力学

热门文章

  1. 资料分析-第一章-统计术语
  2. 以休闲游戏“植物大战僵尸”为例,制作无限阳光修改器。
  3. 实施(运维)工程师 笔试选择题
  4. 数据可视化——tableau 数据报表样例(报表模板)
  5. JSP页面只显示源代码不显示网页内容
  6. 传送的谷歌应用程序打不开_如何使用Google Home将内容传送到您的Chromecast
  7. 学生用计算机中括号怎么打,大括号怎么打,教您word大括号怎么输入
  8. mysql执行计划详解
  9. C++:hex、oct、dec使用
  10. 常用计量单位及其换算