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 相关文章推荐
Selenium定时刷新网页的实现代码
Oct 31 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
Jan 04 Python
10 分钟快速入门 Python3的教程
Jan 29 Python
Python socket模块实现的udp通信功能示例
Apr 10 Python
Python第三方库face_recognition在windows上的安装过程
May 03 Python
python与字符编码问题
May 24 Python
python输出决策树图形的例子
Aug 09 Python
python getpass实现密文实例详解
Sep 24 Python
python画蝴蝶曲线图的实例
Nov 21 Python
使用Python操作ArangoDB的方法步骤
Feb 02 Python
python3中布局背景颜色代码分析
Dec 01 Python
教你如何用Python实现人脸识别(含源代码)
Jun 23 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
PHP中的array数组类型分析说明
2010/07/27 PHP
php保存信息到当前Session的方法
2015/03/16 PHP
如何使用php实现评委评分器
2015/07/31 PHP
PHP设计模式之原型设计模式原理与用法分析
2018/04/25 PHP
PHP如何使用cURL实现Get和Post请求
2020/07/11 PHP
javascript比较文档位置
2008/04/08 Javascript
Mootools 1.2教程 Fx.Tween的使用
2009/09/15 Javascript
JavaScript 学习历程和心得分享
2010/12/12 Javascript
js根据给定的日期计算当月有多少天实现思路及代码
2013/02/25 Javascript
怎么判断js脚本加载完成
2014/02/28 Javascript
jqeury-easyui-layout问题解决方法
2014/03/24 Javascript
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
2014/10/17 Javascript
node.js中的fs.readSync方法使用说明
2014/12/17 Javascript
浅析jquery数组删除指定元素的方法:grep()
2016/05/19 Javascript
JavaScript通过改变文字透明度实现的文字闪烁效果实例
2017/04/27 Javascript
ES6扩展运算符的用途实例详解
2017/08/20 Javascript
JS实现select选中option触发事件操作示例
2018/07/13 Javascript
[03:18]【TI9纪实】社区大触GL与木木
2019/08/25 DOTA
介绍Python的Django框架中的QuerySets
2015/04/20 Python
使用Python编写提取日志中的中文的脚本的方法
2015/04/30 Python
利用Python代码实现数据可视化的5种方法详解
2018/03/25 Python
python基础教程项目二之画幅好画
2018/04/02 Python
python3+requests接口自动化session操作方法
2018/10/13 Python
Python生成rsa密钥对操作示例
2019/04/26 Python
解决Mac下使用python的坑
2019/08/13 Python
python和php学习哪个更有发展
2020/06/17 Python
python使用requests库爬取拉勾网招聘信息的实现
2020/11/20 Python
自荐信如何制作?
2014/02/21 职场文书
小学教师个人先进事迹材料
2014/05/17 职场文书
公司演讲稿开场白
2014/08/25 职场文书
局领导领导班子四风对照检查材料
2014/09/27 职场文书
三八妇女节寄语
2015/02/27 职场文书
无婚姻登记记录证明
2015/06/18 职场文书
初中运动会前导词
2015/07/20 职场文书
推广普通话宣传标语口号
2015/12/26 职场文书
《穷人》教学反思
2016/02/19 职场文书