Python遍历文件夹下所有文件中数据并写入Excel

   所要完成的任务是,将之前处理过的几类数据的文件夹中的.dat文件中的数据读入到Excel中,方便导入Matlab。

  1.    因为需要对同一Excel反复操作,默认为对已存在的Excel进行操作,由于没有现成的对已存在Excel进行读写;操作用到了xlrd模块和xlutils,首先将已存在的Excel读入为rdx,然后使用使用xlutils中的copy将其复制为wtx,对于wtx就可以进行写入操作了,最后将wtx保存至原路径excel中。
  2. 对于目录的遍历使用os.walk,在读取文件夹所有文件同时还能获取父目录等信息。

  

import os
import xlrd
from xlutils.copy import copy


def readdir(rootdir):
    excel = r'...\mix.xls'
    try:
        rdx = xlrd.open_workbook(excel, formatting_info=True)   #打开Excel,并保留原格式
    except:
        print "no excel in %s " % excel
    wtx = copy(rdx)                                             #复制为可读写的wtx
    sheet = wtx.get_sheet(0)
    i = 0
    for parent, dirnames, filenames in os.walk(rootdir):
        print parent                                            #查看文件的父目录    
        for filename in filenames:                              #将文件夹下所有文件写入Excel,每个文件
            j = 0                                               #为一行,文件中每一行占一个单元格
            abspath = os.path.join(parent, filename)
            f = open(abspath, 'r')
            for lines in f.readlines():
                sheet.write(i, j, lines)
                j += 1
            i += 1
    print("write new information successfully")
    wtx.save(excel)
    print ("save the information successfully!")

    功能实现后,发现Matlab无法导入Excel为矩阵,而只能保存为元胞数组,原因在于lines为字符型,保存至Excel中也为字符型。于是将其强制转换为float型,最终成功导入至Matlab中。

lines=float(lines.strip('\n'))

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值