python生词本_Python入门学习笔记:实现一个小型单词本(在线查词,按照字母序排序,生词簿,导入导出)...

这是一个使用Python编写的简单单词本应用,功能包括从现有字典文件中读取单词,根据用户输入在线查询翻译,支持按照字母顺序排序单词,并能进行生词簿管理和导入导出操作。
摘要由CSDN通过智能技术生成

from operator import itemgetter

import os

import urllib

import json

engdic={}

count=0

count_new=0

if(not os.path.isfile("engdic.txt")):

print "no dict file, I'll make one!"

else:

for line in open("engdic.txt"):

cols=line.split('|')

if(len(cols)==2):

engdic[cols[0].strip()]=(cols[1].strip(),'')

elif (len(cols)==3):

engdic[cols[0].strip()]=(cols[1].strip(),cols[2].strip())

else:

continue

count=count+1

print 'Find dict, total',count,'words'

output=open("engdic_t.txt",'w')

output2=open("chndic_t.txt",'w')

while 1:

word=raw_input("Please input word: ")

if (word==''):

break

url='http://fanyi.youdao.com/openapi.do?keyfrom=HCocoa-blog&key=582126642&type=data&doctype=json&version=1.1&q='+word

page=urllib.urlopen(url)

data=page.read()

#data=data.decode("UTF-8", 'ignore').encode("gbk", 'ignore')

ddata=json.loads(data)

if (ddata['errorCode']!=0 or not 'web' in ddata):

print "sorry, but i don't konw what it is, plz input another word."

continue

web=''

for cols in ddata['web'][0]['value']:

web=web+cols.encode("gbk", 'ignore')+','

print word,ddata['translation'][0].encode("gbk", 'ignore'),web[:-1]

engdic[word]=(ddata['translation'][0].encode("gbk", 'ignore'),web[:-1])

count_new=count_new+1

sorteddic=sorted(engdic.iteritems(), key=itemgetter(0)) #retuen tuple

for words in sorteddic:

str= '%-15s| %-10s| %s'%(words[0],words[1][0],words[1][1])

print str

output.write(str+'\n')

output.close()

sorteddic=sorted(engdic.iteritems(), key=itemgetter(1)) #retuen tuple

for words in sorteddic:

str= '%-15s| %-10s| %s'%(words[1][0],words[0],words[1][1])

output2.write(str+'\n')

output2.close()

print 'Processed',count_new,'new words, total words number is',count+count_new

if(os.path.isfile("engdic.txt")):

os.remove('engdic.txt')

os.rename('engdic_t.txt','engdic.txt')

if(os.path.isfile("chndic.txt")):

os.remove('chndic.txt')

os.rename('chndic_t.txt','chndic.txt')

raw_input()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值