python读取excel表格生成erlang数据


Posted in Python onAugust 26, 2017

为了将excel数据自动转换成所需要的erlang数据,听同事说使用python会很方便简单,就自学了两天python,写了一个比较粗糙的python脚本,不过能用,有什么优化的地方请指教

代码如下:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import sys
from openpyxl.reader.excel import load_workbook
import os
import os.path

def gen_data(filename):
 wb = load_workbook('dataxlsx/' + filename + '.xlsx') # 加载文件所有分页

 sheetnames = wb.get_sheet_names() # 获取所有分页的名字列表
 ws = wb.get_sheet_by_name(sheetnames[0]) # 取第一个分页的数据
# print 'ws:', ws

# print "Work Sheet Titile:", ws.title # 分页名称
# print "Work Sheet Rows:", ws.max_row # 分页行数
# print "Work Sheet Cols:", ws.max_column # 分页列数

 content = [] # 数据内容
 id_list = [] # ID列表

# ========================start concat need data=================
 content.append('%% this file is auto maked!\n')
 content.append('-module(' + filename + ').\n')
 content.append('-compile(export_all).\n')

 for i in range(4, ws.max_row + 1):  # 从表格第三行开始读取,由于range函数不包含文件尾,所以为了读到最后一行需+1
  for j in range(ws.max_column):
   if ws[i][j].value == None:
    content.append(' ,""')
   elif j == 0:
    id_list.append(int(ws[i][j].value))
    content.append('get(' + str(ws[i][j].value).strip() + ') ->\n')
    content.append(' {r_' + filename + ', ' + str(ws[i][j].value).strip())
   else:
    content.append(' ,' + str(ws[i][j].value).strip())
  content.append('};\n')

 content.append('get(_) ->\n')
 content.append(' not_match.\n')

 content.append('length() ->\n')
 content.append(' ' + str(ws.max_row - 1) + '.\n')
 content.append('id_list() ->\n ' + str(id_list) + '.')
# ==============================end===========================
 # 写入数据
 f = file('./server/' + filename + '.erl','w+')
 f.writelines(content)
 print 'create new file:', filename + '.erl'
 f.close() # 关闭通道
 return

def start_gen():
 # 删除旧的数据
 delnames = os.listdir('./server')
 for delname in delnames:
  os.remove('./server/' + delname)
  print 'delete old file:', delname

 for _, _, filenames in os.walk('./dataxlsx'): # 遍历文件夹
  for filename in filenames: # 遍历文件
   find = filename.find('.xlsx') # 返回该文件名称长度
#   print "find is:", find
   if filename[0] == '~' or find == -1: # 文件名以'~'开头或者找不到文件名, 如以'.'开头的文件
    continue
   else:
    split_list = filename.split('.') # 使用'.'分割文件名,获得[文件名,文件格式]
#    print split_list
    gen_data(split_list[0]) # 用文件名作为参数调用gen_data

start_gen()

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

Python 相关文章推荐
用实例说明python的*args和**kwargs用法
Nov 01 Python
在Python中使用lambda高效操作列表的教程
Apr 24 Python
使用Python的Bottle框架写一个简单的服务接口的示例
Aug 25 Python
Python实现将xml导入至excel
Nov 20 Python
python实现员工管理系统
Jan 11 Python
Python实现统计给定字符串中重复模式最高子串功能示例
May 16 Python
一百行python代码将图片转成字符画
Feb 19 Python
Pycharm简单使用教程(入门小结)
Jul 04 Python
Python识别html主要文本框过程解析
Feb 18 Python
在python3.64中安装pyinstaller库的方法步骤
Jun 02 Python
降低python版本的操作方法
Sep 11 Python
python实现图书馆抢座(自动预约)功能的示例代码
Sep 29 Python
使用Python实现简单的服务器功能
Aug 25 #Python
详解Python实现多进程异步事件驱动引擎
Aug 25 #Python
python基础while循环及if判断的实例讲解
Aug 25 #Python
itchat和matplotlib的结合使用爬取微信信息的实例
Aug 25 #Python
用 Python 爬了爬自己的微信朋友(实例讲解)
Aug 25 #Python
详解python基础之while循环及if判断
Aug 24 #Python
用Python实现随机森林算法的示例
Aug 24 #Python
You might like
社区(php&&mysql)二
2006/10/09 PHP
落伍首发 php+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
2006/12/16 PHP
php+javascript的日历控件
2009/11/19 PHP
Laravel学习基础之migrate的使用教程
2017/10/11 PHP
用js实现的抽象CSS圆角效果!!
2007/05/03 Javascript
jQuery 页面 Mask实现代码
2010/01/09 Javascript
jQuery对表单的操作代码集合
2011/04/06 Javascript
js+JQuery返回顶部功能如何实现
2012/12/03 Javascript
Javascript实现带关闭按钮的网页漂浮广告代码
2014/01/12 Javascript
JavaScript使用focus()设置焦点失败的解决方法
2014/09/03 Javascript
node.js中的console.timeEnd方法使用说明
2014/12/09 Javascript
VC调用javascript的几种方法(推荐)
2016/08/09 Javascript
vue.js树形组件之删除双击增加分支实例代码
2017/02/28 Javascript
iscroll.js滚动加载实例详解
2017/07/18 Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
2017/08/04 Javascript
JavaScript原型对象原理与应用分析
2018/12/27 Javascript
浅谈小程序 setData学问多
2019/02/20 Javascript
如何在项目中使用log4.js的方法步骤
2019/07/16 Javascript
Vue性能优化的方法
2020/07/30 Javascript
jQuery实现购物车全功能
2021/01/11 jQuery
Python的另外几种语言实现
2015/01/29 Python
python实践项目之监控当前联网状态详情
2019/05/23 Python
Python 实现递归法解决迷宫问题的示例代码
2020/01/12 Python
解决echarts中饼图标签重叠的问题
2020/05/16 Python
python 8种必备的gui库
2020/08/27 Python
用python对excel查重
2020/12/07 Python
Lookfantastic挪威官网:英国知名美妆购物网站
2017/07/26 全球购物
英国和爱尔兰最大的地毯零售商:Kukoon
2018/12/17 全球购物
乌克兰在线电子产品商店:MTA
2019/11/14 全球购物
汉米尔顿手表官网:Hamilton
2020/09/13 全球购物
解释下面关于J2EE的名词
2013/11/15 面试题
金属材料工程毕业生个人的自我评价
2013/11/28 职场文书
工程业务员岗位职责
2013/12/31 职场文书
出生公证委托书
2014/04/03 职场文书
幼儿教师师德师风自我评价
2015/03/05 职场文书
Mysql - 常用函数 每天积极向上
2021/04/05 MySQL