电源信息提取--课后程序(Python程序开发案例教程-黑马程序员编著-第11章-课后作业)
创始人
2024-06-03 01:32:38
0

实例2:电影信息提取

在“电影.txt”文件中,包含电影排名、电影名称、评分、类别、演员等信息。虽然该文件中数据杂乱,不能很清晰地了解全部数据信息,但是每种数据都有相对应的标签,例如title标签对应着电影名称、rating标签对应着电影评分、rank标签对应着电影排名。为了能够提取指定的数据信息,可以使用正则表达式。图1所示为“电影.txt”文件中数据。

 

  1.  电影.txt

本实例要求编写程序,实现提取排名前20的电影名称与评分信息的功能。

实例目标

  1. 掌握re模块中compile()函数的使用
  2. 掌握re模块中findall()方法的使用

实例分析

在使用正则表达式匹配之前,我们需要先读取“电影.txt”文件中的数据,将读取的数据作为正则表达式待匹配的目标文本对象。由于实例要求提取排名前20的电影名称及评分,所以需要编写符合要求的正则表达式,具体如下:

  1. 电影名称对应的正则表达式为title":"(.*?)。
  2. 电影评分对应的正则表达式为rating":\["(.*?)","\d+"\]。
  3. 电影排名对应的正则表达式为rank":(\d+)。

代码实现

import re

data = open("电影.txt", 'r', encoding='utf-8').read()

# 定义正则表达式分别匹配电影名称/评分/排名

title = r'"title":"(.*?)"'

rating = r'"rating":\["(.*?)","\d+"\]'

rank = r'"rank":(\d+)'

# 预编译正则表达式

pattern_title = re.compile(title)

pattern_rating = re.compile(rating)

pattern_rank = re.compile(rank)

# 查找全部匹配的数据(返回列表)

data_title = pattern_title.findall(data)

data_rating = pattern_rating.findall(data)

data_rank = pattern_rank.findall(data)

for i in range(20):

    print("排名:", data_rank[i] + "\t\t" + "电影名:" + data_title[i]

 + "\t\t" + "评分:" + data_rating[i])

以上代码首先导入了re模块,打开“电影.txt”文件并将读取的数据赋值给data,然后编写了分别匹配电影名称、电影评分、电影排名的正则表达式title、rating、rank,使用complie()函数预编译正则表达式,通过findall()方法查找匹配的内容,最后遍历输出前20条数据,即排名前20的电影信息。

代码测试

运行代码,控制台输出结果如下:

排名: 1     电影名:肖申克的救赎       评分:9.6

排名: 2     电影名:霸王别姬           评分:9.6

排名: 3     电影名:控方证人           评分:9.6

排名: 4     电影名:伊丽莎白           评分:9.6

排名: 5     电影名:美丽人生           评分:9.5

排名: 6     电影名:辛德勒的名单       评分:9.5

排名: 7     电影名:这个杀手不太冷     评分:9.4

排名: 8     电影名:阿甘正传           评分:9.4

排名: 9     电影名:十二怒汉           评分:9.4

排名: 10    电影名:泰坦尼克号 3D版    评分:9.4

排名: 11    电影名:背靠背,脸对脸     评分:9.4

排名: 12    电影名:灿烂人生          评分:9.4

排名: 13    电影名:茶馆              评分:9.4

排名: 14    电影名:十二怒汉          评分:9.4

排名: 15    电影名:巴黎圣母院        评分:9.4

排名: 16    电影名:控方证人          评分:9.4

排名: 17    电影名:罗密欧与朱丽叶     评分:9.4

排名: 18    电影名:盗梦空间          评分:9.3

排名: 19    电影名:泰坦尼克号        评分:9.3

排名: 20    电影名:千与千寻          评分:9.3

相关内容

热门资讯

联欢会主持词结束语 联欢会主持词结束语(通用6篇)  晚会开得就是否成功圆满与主持人的讲话有很大关系。下面小编整理的联欢...
幼儿园毕业晚会主持词 幼儿园毕业晚会主持词  主持人在台上表演的灵魂就表现在主持词中。时代不断在进步,司仪等是很多场合都需...
美剧经典台词 美剧精选经典台词  在快速变化和不断变革的今天,能够利用到台词的场合越来越多,台词是一种特殊的,也是...
朗诵会主持词 关于朗诵会主持词4篇  主持词要根据活动对象的不同去设置不同的主持词。在当下这个社会中,很多场合都需...
记者节晚会主持词 记者节晚会主持词  主持词是主持人在台上表演的灵魂之所在。随着社会一步步向前发展,主持词的实用频率越...
婚礼父亲致辞 婚礼父亲致辞(精选15篇)  在平凡的学习、工作、生活中,大家肯定对各类致辞都很熟悉吧,致辞具有“礼...
校园红歌赛的主持词 校园红歌赛的主持词  主持词是主持人在节目进行过程中用于串联节目的串联词。在现今人们越来越重视活动氛...
开业主持词开场白 开业主持词开场白  根据活动对象的不同,需要设置不同的主持词。在当今社会生活中,活动集会越来越多,主...
关于唱歌比赛主持词   主持词是指主持人在主持节目的过程中进行节目串联的串联词,一般由开场白、中间部分与结束语组成。以下...
动漫感人台词 动漫感人台词(通用175句)  台词可以刻画人物的性格,表现人物的感情,加强剧情的表现力。那些广为流...
最新年会主持词 最新年会主持词(精选11篇)  契合现场环境的主持词能给集会带来双倍的效果。在如今这个时代,主持人的...
新生文艺汇演主持词 新生文艺汇演主持词  主持词要根据活动对象的不同去设置不同的主持词。在当今社会生活中,各种集会的节目...
家长代表幼儿园毕业典礼主持词 家长代表幼儿园毕业典礼主持词  主持词是各种演出活动和集会中主持人串联节目的串联词。在人们积极参与各...
学校元旦晚会主持词开场白和结... 学校元旦晚会主持词开场白和结束语  2017年元旦晚会主持词怎么写?怎么开场比较好呢?结束语又该怎么...
毕业晚会致辞 毕业晚会致辞(精选18篇)  在学习、工作或生活中,大家都写过致辞吧,致辞要求风格的雅、俗、庄、谐要...
幼儿园六一节目串词 幼儿园六一节目串词红黄蓝幼第一文库网儿园节目串词主持人(师):亲爱的家长朋友们( ):敬爱的老师们(...
祝寿主持词 祝寿主持词  主持词要尽量增加文化内涵、寓教于乐,不断提高观众的文化知识和素养。在人们积极参与各种活...
回门宴主持词 让你的回门宴顺... 回门宴主持词 让你的回门宴顺利完成  篇一:新婚回门宴主持词  亲爱的各位来宾,各位亲朋好友,先生们...
结婚新郎致辞 结婚新郎致辞(15篇)  在学习、工作、生活中,说到致辞,大家肯定都不陌生吧,致辞具有能伸能缩,可以...
庆中秋迎国庆联欢晚会主持词(...   (念8条短信)  男:我们的驻外营销健儿发来的每一条祝福都是那么的感人。由于时间关系,我们不能一...