python遍历文件夹下所有excel文件


Posted in Python onJanuary 03, 2018

大数据处理经常要用到一堆表格,然后需要把数据导入一个list中进行各种算法分析,简单讲一下自己的做法:

1.如何读取excel文件

网上的版本很多,在xlrd模块基础上,找到一些源码:

import xdrlib ,sys 
import xlrd 
def open_excel(file="C:/Users/flyminer/Desktop/新建 Microsoft Excel 工作表.xlsx"): 
    data = xlrd.open_workbook(file) 
    return data 
#根据索引获取Excel表格中的数据  参数:file:Excel文件路径   colnameindex:表头列名所在行的所以 ,by_index:表的索引 
def excel_table_byindex(file="C:/Users/flyminer/Desktop/新建 Microsoft Excel 工作表.xlsx",colnameindex=0,by_index=0): 
  data = open_excel(file) 
  table = data.sheets()[by_index] 
  nrows = table.nrows #行数 
  ncols = table.ncols #列数 
  colnames = table.row_values(colnameindex) #某一行数据 
  list =[] 
  for rownum in range(1,nrows): 
     row = table.row_values(rownum) 
     if row: 
       app = {} 
       for i in range(len(colnames)): 
        app[colnames[i]] = row[i] 
       list.append(app) 
  return list 
#根据名称获取Excel表格中的数据  参数:file:Excel文件路径   colnameindex:表头列名所在行的所以 ,by_name:Sheet1名称 
def excel_table_byname(file="C:/Users/flyminer/Desktop/新建 Microsoft Excel 工作表.xlsx",colnameindex=0,by_name=u'Sheet1'): 
  data = open_excel(file) 
  table = data.sheet_by_name(by_name) 
  nrows = table.nrows #行数 
  colnames = table.row_values(colnameindex) #某一行数据 
  list =[] 
  for rownum in range(1,nrows): 
     row = table.row_values(rownum) 
     if row: 
       app = {} 
       for i in range(len(colnames)): 
        app[colnames[i]] = row[i] 
       list.append(app) 
  return list 
 
def main(): 
  tables = excel_table_byindex() 
  for row in tables: 
    print(row) 
  tables = excel_table_byname() 
  for row in tables: 
    print(row) 
if __name__=="__main__": 
  main()

最后一句是重点,所以这里也给代码人点个赞!

最后一句让代码里的函数都可以被复用,简单地说:假设文件名是a,在程序中import a以后,就可以用a.excel_table_byname()和a.excel_table_byindex()这两个超级好用的函数了。

2.然后是遍历文件夹取得excel文件以及路径:,原创代码如下:

import os 
import xlrd 
import test_wy 
xpath="E:/唐伟捷/电力/电力系统总文件夹/舟山电力" 
xtype="xlsx" 
typedata = [] 
name = [] 
raw_data=[] 
file_path=[] 
def collect_xls(list_collect,type1): 
  #取得列表中所有的type文件 
  for each_element in list_collect: 
    if isinstance(each_element,list): 
      collect_xls(each_element,type1) 
    elif each_element.endswith(type1): 
       typedata.insert(0,each_element) 
  return typedata 
#读取所有文件夹中的xls文件 
def read_xls(path,type2): 
  #遍历路径文件夹 
  for file in os.walk(path): 
    for each_list in file[2]: 
      file_path=file[0]+"/"+each_list 
      #os.walk()函数返回三个参数:路径,子文件夹,路径下的文件,利用字符串拼接file[0]和file[2]得到文件的路径 
      name.insert(0,file_path) 
    all_xls = collect_xls(name, type2) 
  #遍历所有type文件路径并读取数据 
  for evey_name in all_xls: 
    xls_data = xlrd.open_workbook(evey_name) 
    for each_sheet in xls_data.sheets(): 
      sheet_data=test_wy.excel_table_byname(evey_name,0,each_sheet.name) 
      #请参考读取excel文件的代码 
      raw_data.insert(0, sheet_data) 
      print(each_sheet.name,":Data has been done.") 
  return raw_data 
a=read_xls(xpath,xtype) 
print("Victory")

欢迎各种不一样的想法。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python语言的12个基础知识点小结
Jul 10 Python
Python脚本实现DNSPod DNS动态解析域名
Feb 14 Python
在Python中使用全局日志时需要注意的问题
May 06 Python
python使用itchat库实现微信机器人(好友聊天、群聊天)
Jan 04 Python
python中使用print输出中文的方法
Jul 16 Python
python+influxdb+shell编写区域网络状况表
Jul 27 Python
pytorch中tensor.expand()和tensor.expand_as()函数详解
Dec 27 Python
使用python+poco+夜神模拟器进行自动化测试实例
Apr 23 Python
python实现邮件循环自动发件功能
Sep 11 Python
python获得命令行输入的参数的两种方式
Nov 02 Python
python 实现的IP 存活扫描脚本
Dec 10 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 Python
Python将多份excel表格整理成一份表格
Jan 03 #Python
Python将多个excel文件合并为一个文件
Jan 03 #Python
python中的字典操作及字典函数
Jan 03 #Python
Python将多个excel表格合并为一个表格
Feb 22 #Python
使用Python+Splinter自动刷新抢12306火车票
Jan 03 #Python
Python实现简易Web爬虫详解
Jan 03 #Python
Python读取MRI并显示为灰度图像实例代码
Jan 03 #Python
You might like
第十四节 命名空间 [14]
2006/10/09 PHP
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
2009/04/24 PHP
PHP清除数组中所有字符串两端空格的方法
2014/10/20 PHP
jquery创建并行对象或者合并对象的实现代码
2012/10/10 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2013/10/24 Javascript
jQuery添加和删除指定标签的方法
2015/12/16 Javascript
聊一聊jQuery插件uploadify使用方法
2016/08/24 Javascript
js设置和获取自定义属性的方法
2016/10/20 Javascript
jQuery常见的选择器及用法介绍
2016/12/20 Javascript
深入理解JavaScript中的尾调用(Tail Call)
2017/02/07 Javascript
js replace()去除代码中空格的实例
2017/02/14 Javascript
详解Node全局变量global模块
2017/09/28 Javascript
React Native日期时间选择组件的示例代码
2018/04/27 Javascript
微信小程序实现禁止分享代码实例
2019/10/19 Javascript
如何通过vscode运行调试javascript代码
2020/07/24 Javascript
[01:09:16]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第一场 1月25日
2021/03/11 DOTA
以一段代码为实例快速入门Python2.7
2015/03/31 Python
Python函数返回值实例分析
2015/06/08 Python
Python 实现文件的全备份和差异备份详解
2016/12/27 Python
对numpy中的transpose和swapaxes函数详解
2018/08/02 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
Python 等分切分数据及规则命名的实例代码
2019/08/16 Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
2020/04/27 Python
Python pip install如何修改默认下载路径
2020/04/29 Python
Python3自定义http/https请求拦截mitmproxy脚本实例
2020/05/11 Python
Python爬虫爬取百度搜索内容代码实例
2020/06/05 Python
美国潜水装备、水肺潜水和浮潜设备商店:Leisure Pro
2018/08/08 全球购物
美国儿童玩具、装扮和玩偶商店:Magic Cabin
2018/09/02 全球购物
外包公司软件测试工程师
2014/11/01 面试题
施工单位安全责任书
2014/07/24 职场文书
2014年财务工作总结范文
2014/11/11 职场文书
2014年保险公司工作总结
2014/11/22 职场文书
刑事上诉状范文
2015/05/22 职场文书
格列夫游记读书笔记
2015/07/01 职场文书
JS的深浅复制详细
2021/10/16 Javascript
德劲DE1107指针试高灵敏度全波段收音机机评
2022/04/05 无线电