(Python初级练习)把英语单词文档的数据用正则规则放入字典

  这次是把文档中的英语单词和音标词性翻译,全部放在一个字典中,把单词作为键,翻译和音标等作为值
  附件为work.txt  自己使用时只需要改名

代码如下

import re           # 引用正则表达式模块    
import pprint      # 引用pprint模块



def open_word():        # 定义函数打开文件(必须为同级目录,不然需要改为完整路径)
    a = open("word.txt","r",encoding="utf-8")      # 变量a接收打开的word.txt文件
    aa = a.read()    # 变量aa接收读取work.txt的全部数据
    a.close()       # close函数关闭文件
    return aa      # 把aa获取的全部数据返回



def find_all(all):        
    word_re_obj = re.compile("(.*?)(\[.*?\]):(.*?\.)(.*?)\\n",re.M)     # 定义一个正则对象,写好正则规则
    data = word_re_obj.findall(all)      # 变量data接收所有符合规则的数据

    return data      # 返回







def word_dict(func):      
    word_dict = {}          # 设置一个空字典
    for i in func:             # 用func接收等会传入的data,循环data数据


        word_dict[f"{i[0]}"] = (f"       音标: {i[1]}     词性: {i[2]}       翻译: {i[3]}")      # 然后用字典根据下标添加值     此时i为每一行的数据,i[0]  = 单词  i[1] = 音标  i[2] = 词性  i[3]等于翻译
    pprint.pprint(word_dict)       # 使用pprint 可以让字典自动换行(比较好看)





def main():                      # 主函数 传递相应的参数

    ooo = find_all(open_word())               
    word_dict(ooo)

main()

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值