python实验六:文件操作

实验要求及解析源代码

编写程序,从文件data.txt中取出一组乱序的序列,然后对其进行排序,然后在把排序后的结果写入data_asc.txt中。效果仅供参考:
在这里插入图片描述
在这里插入图片描述

fo=open("data.txt","r")
ls=[]
for line in fo:
    ls.append(int(line.strip()))
fo.close()
ls_ed=sorted(ls)
with open("data_asc.txt",mode="w") as f:
    for item in ls_ed:
        f.write(str(item))
        f.write("\n")
print("ok")

把之前实验的王者荣耀提取的英雄,写入heros.txt中,然后读取出来

import re
str1="""
<li>
  <a href="/webplat/info/news_version3/15592/29030/29082/29084/m11740/202301/928155.shtml" class="tganime-fadein-trigger" target="_blank" οnclick="PTTSendClick('link','new-hero-item2','新英雄-列表-小图2');">
    <img width="68" height="173" data-original="//game.gtimg.cn/images/yxzj/img201606/freehero/vertical/544.jpg" class="lazy" alt="赵怀真"/>
    <span class="hero_name tganime-fadein-child">赵怀真</span>
  </a>
</li>
<li>
  <a href="/webplat/info/news_version3/15592/29030/29082/29084/m11740/202212/926468.shtml" class="tganime-fadein-trigger" target="_blank" οnclick="PTTSendClick('link','new-hero-item3','新英雄-列表-小图3');">
    <img width="68" height="173" data-original="//game.gtimg.cn/images/yxzj/img201606/freehero/vertical/521.jpg" class="lazy" alt="海月"/>
    <span class="hero_name tganime-fadein-child">海月</span>
  </a>
</li>
<li>
  <a href="/webplat/info/news_version3/15592/29030/29082/29084/m11740/202209/922524.shtml" class="tganime-fadein-trigger" target="_blank" οnclick="PTTSendClick('link','new-hero-item4','新英雄-列表-小图4');">
    <img width="68" height="173" data-original="//game.gtimg.cn/images/yxzj/img201606/freehero/vertical/548.jpg" class="lazy" alt="戈娅"/>
    <span class="hero_name tganime-fadein-child">戈娅</span>
  </a>
</li>
"""
list2=re.findall("alt=.+?\"",str1)
with open("hero.txt",mode="w")as f:
    for i in range(len(list2)):
        list22=list2[i]
        f.write(list22[5:len(list22)-1])
        f.write("\n")
f.close()
fo=open("hero.txt","r")
print(fo.readlines())

挑一部你喜欢的小说,根据老师课堂讲解完成一部小说的人物出现频率的提取(小说自选,也可以使用老师群里的天龙八部)
(1)需要使用的知识点在jieba库的课件里面,需要安装jieba库,wordcloud库
(2)注意列表、字典、集合、lambda表达式和sort方法的综合使用
(3)词云的使用,以课上讲解的提取古诗为例展示:

import jieba
from wordcloud import WordCloud
exclude=["说道","自己","一个","什么","武功","不是","甚么",
         "一声","咱们","师父","心中","不知","知道","出来",
         "如何","姑娘","便是","突然","他们","如此","之中",
         "只见","大理","不能","丐帮","只是","不敢","见到",
         "弟子","我们","众人","声音","心想","内力","倘若",
         "南海","契丹","身子","这个","怎么"]

txt=open("天龙八部.txt","r",encoding="utf-8").read()
words=jieba.lcut(txt)
counts={}
#创建字典,并将人物信息写入字典
for word in words:        
    if len(word)==1:
        continue
    elif word=="萧峰":
        rword=="乔峰"
    else:
        rword=word
    counts[rword]=counts.get(rword,0)+1

for word in exclude:
    del counts[word]
    
#转换成列表进行排序
listitem=list(counts.items())
listitem.sort(key=lambda x:x[1],reverse=True)

#将要产生的人物写入列表
list1=[]
for i in range(10):
    word,count=listitem[i]
    list1.append(word)

result=",".join(list1)#将人物名字变成字符串

#生成词云
w=WordCloud(background_color="white",font_path="ziti.ttf")
w.generate(result)
w.to_file("level.png")

在remember.py程序中,try尝试打开username.json。如果这个文件存在,就将其中的用户名读取到内存中,执行打印一条欢迎用户回来的信息。如果用户首次运行这个程序的时候,文件username.json不存在,将引发FileNotFoundError异常,将执行exception代码块,提示用户输入其用户名,再使用json的方法存储该用户名,并打印一句问候语。

import json

try:
    with open('username.json', 'r') as f:
        username = f.read()
        print("welcome back," + username + "!")

except FileNotFoundError:
    username = input("what is your name?")
    with open('username.json', 'w') as f:
        f.write(username)
        print("we'll remember you when you come back,",username)

实验截图

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值