Python Excel MySQL 第一天

本文是作者使用Python进行Excel操作和SQL数据库学习的第一天记录。目标是将Excel作为单词库,通过读取Excel并爬取韦氏字典获取英文释义,最终将数据存储到SQL数据库中。目前正处于功能试验阶段,已实现基本的Excel读写,后续将逐步完善。
摘要由CSDN通过智能技术生成

Python Excel MySQL

这是第一天写博客
最近要考GRE,所以在刷题的同时要背单词,作为一个Python 小白,也想练习一下Python 和SQL,于是萌生了写这个blog的想法具体的目标是将EXCEL作为最初的载体,将单词导入实现刷单词的功能,最后将词库更新存储至SQL数据库。 所以第一步要做的就是规定好EXCEL的格式,因为这是第一天,所以打算从最简单的功能开始实现起。

将大象装到冰箱里需要几步

  1. 首先是对于EXCEL 的格式,因为还在试验功能的阶段,并没有需要在EXCEL里存储太多数据,所以先弄一个简单的格式看看。

    次数代表重复出现过几次,英文释义打算联系一下爬虫,从韦氏字典里爬取,这个是在接下来的需要弄的步骤,今天不着急。

  2. 代码
    我打算使用openpyxl包来进行EXCEL读写功能,具体功能很多相关的帖子
    首先我们需要一个EXCEL文件的路径名,而且由于个人习惯,所以先写好了主函数,在主函数里打算用两个步骤来实现想要的操作,分别是调取命令和执行命令。

if __name__ == "__main__":
    excel_path = 'C:\\Users\\Administrator\\Desktop\\Python_Vocabulary.xlsx'
    all_info = []#建立一个空list来装临时数据,不然在test(all_info)会报错
    extract(excel_path,all_info)
    test(all_info)

定义提取函数,返回一个名字为all_info的list,以供test()方程方便处理数据

def extract(excel_path,all_info):
    file = openpyxl.load_workbook(excel_path)
    sheet = file.active#激活,这个网上可以找到很多命令,不是特别难但是我也不太清楚,等我弄清楚了在专门写一个命令的blog。
    #将获取信息保存在列表中
    for row in sheet.rows:
        item = [cell.value for cell in row]]#生成一个list中的list来储存每个单元格的数据
        all_info.append(item)
    return all_info

返回的all_info 为一个 list [[‘次数’, ‘单词’, ‘英文释义’, ‘同义词’], [‘0’, ‘temperaments’, None, None], [‘0’, ‘contigent’, None, None], [‘0’, ‘proscribe’, None, None], [‘0’, ‘cogent’, None, None], [‘0’, ‘tout’, None, None]]。因为我先写的代码,以防止数据多了不能用,所以现在数据比较少

然后定义test函数

def test(all_info):
    num = list(range(1, len(all_info)))#全体测试个数;要注意range()输出的是一个class要处理城list格式
    while num != list():#如果num非空,也就是还有单词没背完
        pick = random.choice(num)#随机抽取
        #all_info[pick][0] =+ 1
        #记忆次数加一这个办法不可行
        all_info[pick][0] = int(all_info[pick][0]) + 1  #记忆次数加一,我也不明白为什么一开始是int后来变成不是int,之前的办法只能加到1
        for j in range(len(all_info[0])):
            print(all_info[0][j], all_info[pick][j], sep=':')
        ans = str(input('do you know this word, yes=1,no=0: \n'))
        if ans == '1':
            num.remove(pick)#去掉这个选项
        elif ans == '0':
            num.append(pick)#增加这个选项的概率(不记得一次多背一遍)
    print('Congratualtion! you finish all of them again')

在我逐渐更新我的单词库的时候,将他们post上来,如果有需要的可以自取

完整代码如下

#coding=utf-8
import openpyxl
import random


def extract(excel_path,all_info):
    file = openpyxl.load_workbook(excel_path)
    sheet = file.active
    #将获取信息保存在列表中
    for row in sheet.rows:
        item = [cell.value for cell in row]#生成一个list中的list来储存每个单元格的数据
        all_info.append(item)
    return all_info

def test(all_info):
    num = list(range(1, len(all_info)))#全体测试个数
    while num != list():
        pick = random.choice(num)
        all_info[pick][0] = int(all_info[pick][0]) + 1  # 次数加一
        for j in range(len(all_info[0])):
            print(all_info[0][j], all_info[pick][j], sep=':')
        ans = str(input('do you know this word, yes=1,no=0: \n'))
        if ans == '1':
            num.remove(pick)#去掉这个选项
        elif ans == '0':
            num.append(pick)#增加这个选项的概率
    print('Congratualtion! you finish all of them again')

if __name__ == "__main__":
    excel_path = 'C:\\Users\\Administrator\\Desktop\\Python_Vocabulary.xlsx'
    all_info = []
    #judge = input('do you want update your Vocabulary database, yes=1, no=0: \n'),以后更新用
    extract(excel_path,all_info)
    test(all_info)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值