第7章 文件与异常课后习题

(1)请根据第5章课后习题(1)中最后生成的通信录字典创建“通信录.csv”文件;然后编写程序实现查询大王的手机号、QQ号和微信号。

import csv
try:
    with open("e:通讯录.csv.txt",'r',encoding='utf-8') as t:
        reader=csv.reader(t)
        for row in reader:
            if row[0]=='大王':
                re=row
                break
        print("大王的手机号是:",re[1])
        print("大王的QQ是:",re[2])
        print("大王的微信是:",re[3])
except IOError:
    print("文件不存在,请确认!\n")
except NameError:
    print("大王同学不在通讯录中。")

(2)请下载《(Jane Eyre》txt格式的电子书, 并编写程序统计该文本中出现频率排名前20的单词并生成同名词频文件(请注意排除词列表的合理定义).

def g(text):
    text=text.lower()
    for ch in ",.:?-;”":
        text=text.replace(ch," ")
    return text

def word(text,count):
    words=text.split()
    dic1={}
    for i in words:
        dic1[i]=dic1.get(i,0)+1
    excludes={'the','and','to','of','a','be','it','is','not','but'}
    for i in excludes:
        del dic1[i]
    s=sorted(dic1.items(),key=lambda x:x[1],reverse=True)
    return s[:count]

try:
    with open("e:\\Jane Eyre.txt",'r') as file:
        text=file.read()
        text=g(text)
        f=word(text,20)
except IOError:
    print("文件不存在!\n")

else:
    try:
        with open("e:\\词频.txt",'w') as fileFreq:
            items=[word+'\t'+str(freq)+'\n'for word,freq in f]
            fileFreq.writelines(items)
    except IOError:
        print("写入文件出错!")
        for word,freq in f:
            print("{:<10}{:>}",format(word,freq))

第7章 文件与异常课后习题_第1张图片

(3)请将第4章例4-6中的问卷调查结果用文本文件“result.txt" 保存,并编写程序读该文件然后统计各评语出现的次数,再将最终统计结果追加至“result.txt”文件中。

def w(text):
    text=text.replace(","," ")
    text=text.split()
    return text

try:
    dic1={}
    file=open('e:\\result.txt','r+',encoding='utf-8')
    text=file.read()
    lst=w(text)
    print(lst)
    for i in lst:
        dic1[i]=dic1.get(i,0)+1
    for k,v in dic1.items():
        s="{}出现{}次\n".format(k,v)
        write=file.write(s)
    file=open('e:\\result.txt','r+',encoding='utf-8')
    text=file.read()
    print(text)
    file.close
except IOError:
    print("文件不存在")

第7章 文件与异常课后习题_第2张图片

你可能感兴趣的:(python)