美文网首页生信修炼Python小推车生信小白成长记
python 2个txt合并为一个excel中的2个sheet

python 2个txt合并为一个excel中的2个sheet

作者: 下午三点的闲暇 | 来源:发表于2019-11-21 14:56 被阅读0次

    在linux环境下有2个文件,需要将这2个文件,存到一个excel中的2个sheet中
    如何更好的完成这个任务,以下脚本可参考

    # -*- coding: utf-8 -*-
    #__date__:20180704
    #__use__:Combine the result xls to every sheet of one excel
    
    import xlwt,xlrd
    import pandas as pd
    import codecs
    
    afile="a.xls"
    bfile="b.xls"
    
    outexcel ="out_anote.xls"
    
    #####最终结果生成 excel文件###
    #调用函数
    fr=codecs.open(afile,'rb') #考虑到中文字符转码问题
    data1 = pd.read_csv(fr,sep='\t',encoding='gbk')
    fr2=codecs.open(bfile,'rb') #考虑到中文字符转码问题
    data2 = pd.read_csv(fr2, sep='\t',encoding='gbk')
    target_file = pd.ExcelWriter(outexcel)
    data1.to_excel(target_file,sheet_name = "A",index = False)
    data2.to_excel(target_file,sheet_name = "B",index = False)
    target_file.save()
    

    这里面遇到了字符串识别有问题,因此读取文件时,用rb读取,之后大家遇到转码问题,可以试试这个方法
    这个脚本中用到了panda包,之前用的不多,现在发现确实很好用,以后可以试着多用以下

    在转换过程中,遇到另一个问题,转换之后的文件太大,例如源文件为文本文件,每个有50M ,那合并为xls则为100M,但是在window系统下另存为xlsx格式,则只有30M,文件大小差距太大,因此需要解决,python转换为excel时,文件过大问题

    查了很多资料,结果发现,只需要把输出文件的out_anote.xls的后缀名.xls,改成.xlsx即可,解决这个问题,生成的xlsx文件只有30M左右,走了很多弯路,查了很多资料,结果很简单就解决了

    相关文章

      网友评论

        本文标题:python 2个txt合并为一个excel中的2个sheet

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