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中apply函数的用法实例教程
Jul 31 Python
Python文件及目录操作实例详解
Jun 04 Python
Django中间件工作流程及写法实例代码
Feb 06 Python
Python实现二维数组输出为图片
Apr 03 Python
python队列queue模块详解
Apr 27 Python
解决tensorflow测试模型时NotFoundError错误的问题
Jul 27 Python
win10系统下Anaconda3安装配置方法图文教程
Sep 19 Python
PyCharm 创建指定版本的 Django(超详图解教程)
Jun 18 Python
python实现BP神经网络回归预测模型
Aug 09 Python
Python绘图实现台风路径可视化代码实例
Oct 23 Python
python 读取串口数据的示例
Nov 09 Python
python 实现逻辑回归
Dec 30 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中的排序函数sort、asort、rsort、krsort、ksort区别分析
2014/08/18 PHP
php正则替换处理HTML页面的方法
2015/06/17 PHP
纯PHP代码实现支付宝批量付款
2015/12/24 PHP
浅谈php(codeigniter)安全性注意事项
2017/04/06 PHP
jqPlot Option配置对象详解
2009/07/25 Javascript
高性能web开发 如何加载JS,JS应该放在什么位置?
2010/05/14 Javascript
Prototype源码浅析 Number部分
2012/01/16 Javascript
找出字符串中出现次数最多的字母和出现次数精简版
2012/11/07 Javascript
Jquery的hide及toggle方法让超链接慢慢消失
2013/09/06 Javascript
JavaScript中eval函数的问题
2016/01/31 Javascript
Vue制作Todo List网页
2017/04/26 Javascript
详解微信小程序设置底部导航栏目方法
2017/06/29 Javascript
Vue中如何实现proxy代理
2018/04/20 Javascript
VUE实现可随意拖动的弹窗组件
2018/09/25 Javascript
JS中call()和apply()的功能及用法实例分析
2019/06/28 Javascript
Vue 实现从小到大的横向滑动效果详解
2019/10/16 Javascript
微信小程序后端实现授权登录
2020/02/24 Javascript
原生javascript如何实现共享onload事件
2020/07/03 Javascript
Vue中的this.$options.data()和this.$data用法说明
2020/07/26 Javascript
微信小程序实现购物车功能
2020/11/18 Javascript
Python 实现简单的shell sed替换功能(实例讲解)
2017/09/29 Python
Python 在字符串中加入变量的实例讲解
2018/05/02 Python
基于pip install django失败时的解决方法
2018/06/12 Python
python直接获取API传递回来的参数方法
2018/12/17 Python
使用Python快乐学数学Github万星神器Manim简介
2019/08/07 Python
使用Python实现分别输出每个数组
2019/12/06 Python
Pytorch学习之torch用法----比较操作(Comparison Ops)
2020/06/28 Python
PyTorch安装与基本使用详解
2020/08/31 Python
浅析Python 责任链设计模式
2020/09/11 Python
纯CSS3实现圆圈动态发光特效动画的示例代码
2021/03/08 HTML / CSS
浅析border-radius如何兼容IE
2016/04/19 HTML / CSS
高中历史教学反思
2014/02/08 职场文书
2014年小学教师工作总结
2014/11/10 职场文书
nginx优化的六点方法
2021/03/31 Servers
再次探讨go实现无限 buffer 的 channel方法
2021/06/13 Golang
python基础之错误和异常处理
2021/10/24 Python