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中的__getitem__方法与slice对象的切片操作
Jun 27 Python
python 环境变量和import模块导入方法(详解)
Jul 11 Python
python编程之requests在网络请求中添加cookies参数方法详解
Oct 25 Python
关于python列表增加元素的三种操作方法
Aug 22 Python
python绘制漏斗图步骤详解
Mar 04 Python
Python生成器的使用方法和示例代码
Mar 04 Python
Python 给定的经纬度标注在地图上的实现方法
Jul 05 Python
opencv之颜色过滤只留下图片中的红色区域操作
Jun 05 Python
学python需要去培训机构吗
Jul 01 Python
详解Pytorch显存动态分配规律探索
Nov 17 Python
Pandas自定义选项option设置
Jul 25 Python
Python实现学生管理系统并生成exe可执行文件详解流程
Jan 22 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
多文件上传的例子
2006/10/09 PHP
PHP中实现汉字转区位码应用源码实例解析
2010/06/14 PHP
PHP生成随机密码类分享
2014/06/25 PHP
php array_merge_recursive 数组合并
2016/10/26 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
Javascript 对象的解释
2008/11/24 Javascript
javascript html 静态页面传参数
2009/04/10 Javascript
Js组件的一些写法
2010/09/10 Javascript
如何在JavaScript中实现私有属性的写类方式(二)
2013/12/04 Javascript
Node.js与Sails ~项目结构与Mvc实现及日志机制
2015/10/14 Javascript
AngularJS表达式讲解及示例代码
2016/08/16 Javascript
Angular多选、全选、批量选择操作实例代码
2017/03/10 Javascript
在小程序中集成redux/immutable/thunk第三方库的方法
2018/08/12 Javascript
js实现移动端轮播图
2020/12/21 Javascript
Vue动态创建注册component的实例代码
2019/06/14 Javascript
JS利用prototype给类添加方法操作详解
2019/06/21 Javascript
jQuery子选择器与可见性选择器实例分析
2019/06/28 jQuery
Python中无限元素列表的实现方法
2014/08/18 Python
Python实现获取邮箱内容并解析的方法示例
2018/06/16 Python
Python Web版语音合成实例详解
2019/07/16 Python
Django接收照片储存文件的实例代码
2020/03/07 Python
快速解决jupyter启动卡死的问题
2020/04/10 Python
戴森英国官网:Dyson英国
2019/05/07 全球购物
美赞臣营养马来西亚旗舰店:Enfagrow马来西亚
2019/07/26 全球购物
static关键字的用法
2013/10/07 面试题
工商管理应届生求职信
2013/10/07 职场文书
《窗前的气球》教学反思
2014/04/07 职场文书
节约用水倡议书
2014/04/16 职场文书
创文明城市标语
2014/06/16 职场文书
《包身工》教学反思
2016/02/23 职场文书
大学生,三分钟即兴演讲稿
2019/07/22 职场文书
Python进行区间取值案例讲解
2021/08/02 Python
Minikube搭建Kubernetes集群
2022/03/31 Servers
iSCSI服务器CHAP双向认证配置
2022/04/01 Servers
多人盗宝《绿林侠盗》第三赛季4.5上线 跨平台实装
2022/04/03 其他游戏
mybatis-plus模糊查询指定字段
2022/04/28 Java/Android