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实现图片转字符画的示例
Aug 22 Python
Django中间件实现拦截器的方法
Jun 01 Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
Jun 06 Python
python实现俄罗斯方块
Jun 26 Python
Python 一句话生成字母表的方法
Jan 02 Python
django 信号调度机制详解
Jul 19 Python
python使用百度文字识别功能方法详解
Jul 23 Python
python中eval与int的区别浅析
Aug 11 Python
tensorflow 环境变量设置方式
Feb 06 Python
通过自学python能找到工作吗
Jun 21 Python
python如何建立全零数组
Jul 19 Python
Python类绑定方法及非绑定方法实例解析
Oct 09 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
全国FM电台频率大全 - 17 湖北省
2020/03/11 无线电
PHP7正式版测试,性能惊艳!
2015/12/08 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
2018/06/10 PHP
php使用QueryList轻松采集js动态渲染页面方法
2018/09/11 PHP
TP3.2框架分页相关实现方法分析
2020/06/03 PHP
c#和Javascript操作同一json对象的实现代码
2012/01/17 Javascript
jquery动态加载select下拉框示例代码
2013/12/10 Javascript
javascript break指定标签打破多层循环示例
2014/01/20 Javascript
js实现获取焦点后光标在字符串后
2014/09/17 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
2015/02/20 Javascript
JavaScript事件类型中UI事件详解
2016/01/14 Javascript
Bootstrap基本插件学习笔记之模态对话框(16)
2016/12/08 Javascript
Vue.extend实现挂载到实例上的方法
2019/05/01 Javascript
基于Vue SEO的四种方案(小结)
2019/07/01 Javascript
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
jQuery Datatables 动态列+跨列合并实现代码
2020/01/30 jQuery
[02:53]DOTA2亚洲邀请赛 NewBee战队巡礼
2015/02/03 DOTA
[50:11]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第三场
2018/04/09 DOTA
Python中AND、OR的一个使用小技巧
2015/02/18 Python
Python数据结构之双向链表的定义与使用方法示例
2018/01/16 Python
Tensorflow的可视化工具Tensorboard的初步使用详解
2018/02/11 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
2018/04/28 Python
Python使用combinations实现排列组合的方法
2018/11/13 Python
Python超越函数积分运算以及绘图实现代码
2019/11/20 Python
Python实现屏幕录制功能的代码
2020/03/02 Python
PyCharm GUI界面开发和exe文件生成的实现
2020/03/04 Python
使用pandas库对csv文件进行筛选保存
2020/05/25 Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
2020/06/09 Python
python 如何将office文件转换为PDF
2020/09/22 Python
用Python自动清理电脑内重复文件,只要10行代码(自动脚本)
2021/01/09 Python
斐乐美国官方网站:FILA美国
2019/03/01 全球购物
党员先进性教育整改措施
2014/09/18 职场文书
车辆委托书范本
2014/10/05 职场文书
应届生简历自我评价
2015/03/11 职场文书
2015年党员发展工作总结
2015/05/13 职场文书
Oracle表空间与权限的深入讲解
2021/11/17 Oracle