python 实现TXT转excel 并切割文件

话不多说,上代码

1.本次使用的是python3环境,使用pandas读取文件,读取速度有点慢,建议数据量50W以下
2. 优化方案可以使用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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值