数据加工+生成器+结构图德天带你深入学习PYthon数据提取+文件保存

用心做好文章,用心做好教育

一篇好文章,能带给人启迪!
代码结构示意图:

文件部分

本地TXT文件:
在这里插入图片描述
保存EXCEL文件:
在这里插入图片描述

代码分析结构图

在这里插入图片描述

源代码:

#定义一个读取数据的函数,参数为file_name----结构图:载入数据
def read_data(file_name):
    #定义读取文件的函数
    def read_file():
        #调取外部文件名称,映射到内存中,命名为f
        with open(file_name,encoding='utf-8') as f:
            #循环条件为True,执行读取数据,并临时存入line变量,
            while True:
                line = f.readline()
                #生成了一个存储字典信息的生成器,内容存入了line内
                yield line
    #返回函数调用
    return read_file()

#函数get_world是一个功能函数,
#----结构图:辅助加工
#嵌套在write_excel函数内while循环语句内,是一个辅助函数。
def get_world(d):
    #对参数d取索引去掉头和尾
    s = d[1:-2]
    #把空格去掉,同时用逗号分隔
    s = s.replace(' ','').split(',')
    #定义一个空的列表,定义为result
    result = []
    #对列表s进行遍历
    for i in s:
        try:
    #把s中遍历变量i,提取value值后,把\用replace方式删除,并把结果添加到result中,同时对按分号分隔,并把斜线用删除。
            result.append(i.split(':')[1].replace('\'',''))
        except:
            #如果有问题,输出i
            print(i.split(':'))
    #最后函数保留result,----结构图:数据回收
    return result
    
#定义函数write_excel,参数传入read_gen,excel_name
    #函数内首先导入xlwt模块
    #建立映射文件名称workbook,表名称worksheet,定义表的硬盘名称sheet1
    
def write_excel(read_gen,excel_name):
    import xlwt
    workbook=xlwt.Workbook(encoding='gbk2312')
    worksheet=workbook.add_sheet('sheet1')
    #定义一个表头列表,同时对表头进行遍历,把序号和内容存入d和t中
    sheet_title = ['姓名','邮箱','地址','电话','公司','职业']
    for d,t in enumerate(sheet_title):
        #表单中0行,横向在列的方式写入内容t
        worksheet.write(0,d,t)
        
        
#设置循环变量i,初值为1,当获取字典的信息为空时,退出循环。       
    i = 1
    #当条件为真时,next指针跳转到下一条记录信息
    while True:
        #参数d是生成器中调用到的文件内的每一行信息
        d = next(read_gen)
        if d == '':
            break
        
       #生成器中存储的文件信息d,通过功能函数get_world加工后保存到l中, 
        l = get_world(d)
        #数据提取----结构图:数据写入2:数据提取
        for j,t in enumerate(l):
            worksheet.write(i,j,t)
        i += 1
        
        
    #写入文档----结构图:写入文档excel中    
    workbook.save(excel_name)
    
if __name__=='__main__':
    #read_gen是函数read_data的实例调用,保存了文件"data,txt"生成器数据
    read_gen = read_data(file_name = 'data.txt')
    write_excel(read_gen,'data.xls')
    

补充知识:
生成器设计生成豆油案例:

def ksf():
 
    for i in range(1,10):
        yield '正在生产第{}桶豆油'.format(i)
        
g = ksf()

import time
while True:
   
   try:       
        print(next(g))
        time.sleep(1)
   except StopIteration:
        print("豆油生产结束了!")
        break

带你进入一个更加奇妙的编程世界,德天老师和你一起精通学习Python编程!创作不易,敬请评论点赞谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值