python实现TXT转xlsx并切割文件

作者: 堂哥000 | 来源:发表于2021-02-09 16:38 被阅读0次

    话不多说,上代码

    1.本次使用的是python3环境,使用pandas读取文件,读取速度有点慢,建议数据量50W以下

    1. 优化方案可以使用mysql来操作sql来完成大数据量的操作,下一篇博客介绍
    # -*- coding: utf-8 -*-
    
    
    import pandas as pd
    import sys
    #from bbb import *
    import time
    
    curr_date=time.strftime("%Y-%m-%d", time.localtime()) 
    
    #文件名路径
    path="C:/Users/Desktop/test.txt"
    # 结果文件存放地址
    res_file_path="C:/Users/Desktop/test/"
    #produce_name=sys.argv[1]
    #num=sys.argv[2] 
    # 读取文件内容 ,含表头 
    df =  pd.read_table(path,sep='\t',header=0,dtype=str)
    
     # 按某一行规则切割并返回该行值的数据量
    def cnt_produce(produce_name):
        cnt = df[df['产品']==produce_name].shape[0]
        return cnt
    
    # txt 转 excel 
    def Txt_To_Excel(produce_name,num1,num2,num3) :
      
    # 要读取某一列的数据值
        df_2=df[df['产品']==produce_name].iloc[num1:num2]
        
        # 结果文件数据量
        num=num2-num1
        # 结果文件名
        res_file_name=(res_file_path+curr_date + str(num) + '_' + str(num3) + '_' +  produce_name + '.xlsx')
        df_2.to_excel(res_file_name,index=False)
        print(res_file_name)
        #print(df_2)
        #pd.read_table?
    
    # 设置文件步长 , 此处按2000行一个文件切割
    def result(produce_name):
        print('开始')
        pro_cnt=cnt_produce(produce_name)
        print(pro_cnt)
        n=0
        i=0
        while n  <= pro_cnt :
            if n > pro_cnt - 2000 :
                m=pro_cnt
                i=i+1
                print('n='+ str(n),'m=' + str(m),'i='+str(i))
                Txt_To_Excel(produce_name,n,m,i)
                break
            else:
                m=n+2000
                i=i+1
                print('n='+ str(n),'m=' + str(m),'i='+str(i))
                Txt_To_Excel(produce_name,n,m,i)
                n=m
                #print(m,n,'bbbb') 
    
    # 执行模块
    if __name__ == '__main__':
        print('开始')
        # 传入要读取列值
        result('产品名')
        print('结束')
        True
    

    相关文章

      网友评论

        本文标题:python实现TXT转xlsx并切割文件

        本文链接:https://www.haomeiwen.com/subject/zxlcxltx.html