(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))
(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("文件不存在")