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使用电子邮件模块smtplib的方法
Aug 28 Python
python 使用get_argument获取url query参数
Apr 28 Python
python清理子进程机制剖析
Nov 23 Python
Python实现基本数据结构中栈的操作示例
Dec 04 Python
PyCharm设置SSH远程调试的方法
Jul 17 Python
django 外键model的互相读取方法
Dec 15 Python
利用Python查看微信共同好友功能的实现代码
Apr 24 Python
Python 给定的经纬度标注在地图上的实现方法
Jul 05 Python
pytorch 加载(.pth)格式的模型实例
Aug 20 Python
python爬虫豆瓣网的模拟登录实现
Aug 21 Python
python list数据等间隔抽取并新建list存储的例子
Nov 27 Python
pycharm中导入模块错误时提示Try to run this command from the system terminal
Mar 26 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中常用编辑器推荐
2007/01/02 PHP
php对图像的各种处理函数代码小结
2013/07/08 PHP
YII路径的用法总结
2014/07/09 PHP
解读PHP的Yii框架中请求与响应的处理流程
2016/03/17 PHP
php基于websocket搭建简易聊天室实践
2016/10/24 PHP
javascript循环变量注册dom事件 之强大的闭包
2010/09/08 Javascript
在浏览器中获取当前执行的脚本文件名的代码
2011/07/19 Javascript
js读写cookie实现一个底部广告浮层效果的两种方法
2013/12/29 Javascript
js图片预加载示例
2014/04/30 Javascript
escape编码与unescape解码汉字出现乱码的解决方法
2014/07/02 Javascript
JavaScript控制网页层收起和展开效果的方法
2015/04/15 Javascript
jquery实现带缩略图的可定制高度画廊效果(5种)
2015/08/28 Javascript
js实现拖拽功能
2017/03/01 Javascript
Vue组件通信实践记录(推荐)
2017/08/15 Javascript
vue-cli配置全局sass、less变量的方法
2019/06/06 Javascript
一起写一个即插即用的Vue Loading插件实现
2019/10/31 Javascript
原生JS实现拖拽功能
2020/12/16 Javascript
[03:27]最受玩家喜爱奖提名:PZH_Element 致玩家寄语
2016/12/20 DOTA
Python ZipFile模块详解
2013/11/01 Python
Python多线程编程(六):可重入锁RLock
2015/04/05 Python
列举Python中吸引人的一些特性
2015/04/09 Python
怎样使用Python脚本日志功能
2016/08/14 Python
轻松掌握python设计模式之策略模式
2016/11/18 Python
Python实现通讯录功能
2018/02/22 Python
Python3 安装PyQt5及exe打包图文教程
2019/01/08 Python
在python中对变量判断是否为None的三种方法总结
2019/01/23 Python
python中实现控制小数点位数的方法
2019/01/24 Python
Django接收自定义http header过程详解
2019/08/23 Python
Python序列化pickle模块使用详解
2020/03/05 Python
pytorch查看模型weight与grad方式
2020/06/24 Python
CSS3实现红包抖动效果
2020/12/23 HTML / CSS
社团活动策划书范文
2014/01/09 职场文书
《鸟的天堂》教学反思
2014/02/27 职场文书
纪检干部现实表现材料
2014/08/21 职场文书
群众路线教育实践活动个人对照检查材料思想汇报(社区班子)
2014/10/06 职场文书
68句权威创业名言
2019/08/26 职场文书