超级详细备注的代码:Python帮助您高效通过各种英语考试

标题:限时免费|领取大学英语六级考试葵花宝典

联系小编,获取源码和30份六级真题。

# -*- coding:utf-8 -*-#作者:公众号:湾区人工智能
#功能:实现分析各种英语历年考试真题,比如,中考,高考,四级,六级,雅思,托福,GRE,GMAT
#(pdf,Word,TXT格式数据,都能解析,不论是1个文件还是多个文件),统计单词出现次数,词频逆排序,
#从出现次数最多的单词开始记忆,提高背诵效率,做成单词红宝书,快速高效通过各种英语考试。
#时间:#2019-03-02 463710 March Saturday the 08 week, the 061 day SZ
#环境:Python3.7,编译器,sublime text,系统:Unix
#使用方法:把此代码文件和英文文件放在一个新建文件夹里,然后运行,就会产生单词红宝书。
#我把翻译部分屏蔽了,如果想要翻译,自己去后面取消屏蔽
#注意:文件夹里面不要有其他多余文件夹或者文件,要不然统计数目会有出入。但可以保证得到的单词没有重复的

几个函数的设计

读取PDF文件所有单词

import re #正则化库#引入解析pdf文件的库,处理pdf文件
import pdfplumber #解析pdf文件
def pdf_file():pdf = pdfplumber.open(filename)raw_words = '' #保存所有的单词for page in pdf.pages: raw_words = raw_words + str(page.extract_words()) #两页,两个列表raw_words = raw_words.lower()words = re.sub('decimal', '', raw_words) #删除字符串里面所有的decimal,words = re.sub('top', '', words)words = re.sub('bottom', '', words)#words = re.sub('x', '', words)words = re.sub('text', '', words)words = re.findall('[a-z]+', words) #得到所有的英文单词,排除了汉语单词,各种符号while 'x' in words:words.remove('x')return words

读取Word文件所有单词

#读取docx中的单词
import docx
def docx_file():file=docx.Document(filename)raw_words = '' #保存所有的单词#输出每一段的内容for para in file.paragraphs:raw_words += para.text #把每段的单词添加到字符串里面raw_words = raw_words.lower()words = re.findall('[a-z]+',raw_words) #得到所有的英文单词,排除了汉语单词,各种符号return words 

读取TXT文件所有单词

#读取TXT中的单词
def txt_file():with open(filename)  as file:raw_words = file.read().lower()words = re.findall('[a-z]+',raw_words) #得到所有的英文单词,排除了汉语单词,各种符号return words 

统计单词数目

按照词频逆排序,然后从出现个数最多的单词开始记忆,迅速提高学习效率

#统计单词数目,按照词频逆排序,然后从出现个数最多的单词开始记忆,迅速提高学习效率
def count(words):words_set = set(words)number_words = len(words) #六级题总共出现的单词数目,包括重复的单词数目number_words_set = len(words_set) #需要记忆的单词个数print('需要记忆的单词个数',number_words_set)print('总共出现的单词数目',number_words)'''#利用函数Counter统计次数count_words = Counter(words)print(count_words)number_per_words = count_words.items()#print(number_per_words)'''#用hash计算每个单词出现次数hash = {}for word in words:if word not in hash:hash[word] = 1else:hash[word] += 1sorted_hash = sorted(hash,  reverse = False) #按照ABC顺序排列,没有重复单词,只有英文单词#sorted_hash = sorted(hash.values(), reverse = True)#print(sorted_hash)data = sorted(hash.items(), key=lambda x: x[1], reverse=True) #按照出现次数排列,没有重复单词return data #返回列表,每个元素是一个元组,左边是单词,右边是单词出现次数

爬取进行翻译

#爬取有道翻译网页进行翻译
import urllib.request
import urllib.parse
import json
import time
#进行单词翻译
#https://blog.csdn.net/qaz3171210/article/details/51247230
def translate(word):content = word url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'data = {}data['i'] = contentdata['from']= 'AUTO'data['to'] = 'AUTO'data['smartresult'] = 'dict'data['client'] = 'fanyideskweb'data['salt'] = '1527480457870'data['sign'] = 'abf2d2301303ac6d8ae48c532c631060'data['doctype'] = 'json'data['version'] = '2.1'data['keyfrom'] = 'fanyi.web'data['action'] = 'FY_BY_REALTIME'data['typoResult'] = 'false'data = urllib.parse.urlencode(data).encode('utf-8')time.sleep( 6 )  #间隔几秒调取网页翻译功能,防止被屏蔽response = urllib.request.urlopen(url,data)html = response.read().decode('utf-8')target = json.loads(html)#print(target['translateResult'][0][0]['tgt'])return target['translateResult'][0][0]['tgt']#print(word,end = '              ')#print("翻译结果:%s" % (target['translateResult'][0][0]['tgt']))

主函数开始

获取文件夹里所有文件

#主函数开始
import os
file_output = '/Users/apple/Documents/ST/python/英语项目/雅思红宝书.csv'
filenames = os.listdir(os.getcwd()) #all the filenames in the current folder
all_words = []
#words = []
for filename in filenames:

删除多余文件

    #排除多余的文件,防止重复计数if '.csv' in filename:continueif '.py' in filename:continueprint(filename)

####分别读取每个文件里面的单词

    #统计每个pdf文件里面的单词,并且放到一个列表words里面if '.pdf' in filename: words = pdf_file()print('len_words is :', len(words))#统计每个Word文件里面的单词,并且放到一个列表words里面if '.docx' in filename:words = docx_file()print('len_words is :', len(words))#统计每个TXT文件里面的单词,并且放到一个列表words里面if '.txt' in filename:words = txt_file()print('len_words is :', len(words))

合并所有单词

    #统计所有文件中的英文单词,并且放进列表里#all_words = all_words.extend(words)all_words = all_words + words print('len_all_words is :', len(all_words))

调用计数函数统计单词

data = count(all_words) ##得到列表,每个元素是一个元组,左边是单词,右边是单词出现次数
word_text = ''
for w in data:word = w[0] #获取每个元组里的单词#print(chinese)word_text = word_text + word + '\n'#所有单词按照词频降序排列写入一个字符串里

进行单词翻译

    这里需要爬取网页翻译,耗费大量时间,可以自己选择运行chinese = translate(word)word_text = word_text + chinese + '\n'#所有单词写入一个

生词单词红宝书

用Excel打开

open(file_output,'a').write(word_text)

超级详细备注的代码:Python帮助您高效通过英语六级考试相关推荐

  1. DayDayUp:大学英语六级考试历年真题答案规律分析、应试回答精讲、及六级改革历史之详细攻略

    DayDayUp:大学英语六级考试历年真题答案规律分析.应试回答精讲及六级改革历史之详细攻略 目录 大学英语六级考试历年真题规律分析 1.英六试题结构 2.英语六级改革历史

  2. python统计词频_Python统计四六级考试的词频

    Python统计四六级考试的词频 此文首发于公众号 「Python知识圈」, 欢迎直接去公众号查看 阅读文本大概需要 4.6 分钟. 今天是教师节,先祝天下所有老师教师节快乐,感谢您在我学生时代对我的 ...

  3. 超级详细的几道python题(附答案)含解析、建议收藏

    名字:阿玥的小东东 学习:python.正在学习c 主页:阿玥的小东东 目录 判断字符串 a = "welcome to my world" 是否包含单词 b = "wo ...

  4. MySQL约束那些事(超级详细,附带代码解析)

    约束 1.约束概述 1.1 为什么需要约束 数据完整性是指数据的精确性和可靠性.它是防止数据库中存在不符合语义规定的数据和防止错误信息的输入输出造成无效操作或错误信息而提出的. 为了保证数据的完整性, ...

  5. python字典去重合并_Python字典及基本操作(超级详细)

    Python字典及基本操作(超级详细) 收录于话题#Python入门27个 今天小张帮大家简单介绍下Python的一种数据结构: 字典,字典是 Python 提供的一种常用的数据结构,它用于存放具有映 ...

  6. import的用法python_Python导入模块,Python import用法(超级详细)

    Python导入模块,Python import用法(超级详细) 使用 Python 进行编程时,有些功能没必须自己实现,可以借助 Python 现有的标准库或者其他人提供的第三方库.比如说,在前面章 ...

  7. python爬虫之获取QQ关系网(超级详细)

    一.背景: 继上次QQ空间登陆后获取QQ好友.群友.群信息之后,需求又扩大了,变成了获取QQ关系网,什么意思呢:就是给你一个QQ,然后从这个QQ出发,通过该QQ的说说.点赞.评论获取该QQ有过交集的人 ...

  8. 在电脑上安装python的步骤-python中pygame安装过程(超级详细)

    安装时是需要设置python环境变量的,下载python的时候底下有个小框框(没有默认选中) Add Python 3.7 to PATH需要选择的,如果没有选择的话,需要自己设置,我一般比较懒,卸载 ...

  9. python contains类似函数_五步教会你用python爬虫神器PyQuery!(内含详细步骤和代码)...

    前言: 今天为大家带来的内容,是五步教会你用python爬虫神器PyQuery!(内含详细步骤和代码),在这里还是要啰嗦下,为了有更好的观赏性,大部分代码用图片的方式呈现出来!喜欢的话不忘点赞关注不迷 ...

最新文章

  1. smartfoxserver 个人心得
  2. function checkBrowser()//判断浏览器
  3. SAP Fiori Launchpad tile点击之后,后台的调整url解析机制
  4. 少儿编程100讲轻松学python(十一)-python如何保留小数点位数
  5. OpenCV修养(一)——引入
  6. R7-7 寻找大富翁 (25 分)
  7. 【英语学习】【医学】无机化学 - 化合物命名(1) - 离子化合物
  8. 软件工程项目之Windows Phone Application的一个设想
  9. 【深入浅出精华版视频】-刘意day01-10思维导图整理
  10. 产品经理面试——简历填写
  11. ansa打开catia文件_catia 帮助文件如何打开?
  12. 尚学堂马士兵Oracle教程笔记
  13. 舒服的小程序吸顶动画
  14. ApacheCN 翻译活动进度公告 2019.6.21
  15. 常见错误:无效的文件dsn_DSN1COPY错误-SP映射页面错误
  16. Winform从入门到精通(41)——FileSystemWatcher(史上最全)
  17. 【DP学习总结】区间DP
  18. 学术——获取参考文献格式
  19. Maestro 薛定谔软件简单分子对接案例
  20. 11_ue4天空球的使用

热门文章

  1. 微信小程序|开发实战篇之二
  2. 如果对象的引用被置为null,;垃圾回收器是否会立即释放对象占用的内存?
  3. Windows编译libcaffe时报cudnn.hpp(114): too few arguments in function call错误
  4. bash:express:command not found
  5. HDU 5045 状压DP 上海网赛
  6. 第二部分 设计类型:第13章 接口
  7. 关于地理国情监测(国家测绘局、地理信息系统协会改名及国家级地理信息产业园奠基的风生水起)...
  8. 历史沉重,人人生活在历史里
  9. SpringBoot整合Shiro实现权限控制,验证码
  10. SpringBoot和SpringCloud面试题