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字符转换
Sep 06 Python
python爬虫入门教程--优雅的HTTP库requests(二)
May 25 Python
用Python写一段用户登录的程序代码
Apr 22 Python
解决Python获取字典dict中不存在的值时出错问题
Oct 17 Python
python之mock模块基本使用方法详解
Jun 27 Python
python判断自身是否正在运行的方法
Aug 08 Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
Feb 25 Python
如何真正的了解python装饰器
Aug 14 Python
python实现梯度下降算法的实例详解
Aug 17 Python
python 下载文件的几种方式分享
Apr 07 Python
教你如何使用Python实现二叉树结构及三种遍历
Jun 18 Python
python字符串拼接.join()和拆分.split()详解
Nov 23 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
索尼SONY SRF-S83/84电路分析和打磨
2021/03/02 无线电
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
2007/03/15 PHP
php将文本文件转换csv输出的方法
2014/12/31 PHP
php发送http请求的常用方法分析
2016/11/08 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
javascript之对系统的toFixed()方法的修正
2007/05/08 Javascript
Jquery下判断Id是否存在的代码
2011/01/06 Javascript
ajax上传时参数提交不更新等相关问题
2012/12/11 Javascript
Javascript事件实例详解
2013/11/06 Javascript
node.js中的fs.symlinkSync方法使用说明
2014/12/15 Javascript
javascript实现简单的页面右下角提示信息框
2015/07/31 Javascript
微信小程序 前端源码逻辑和工作流详解
2016/10/08 Javascript
jquery动态创建div与input的实例代码
2016/10/12 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
2016/11/20 Javascript
设置jquery UI 控件的大小方法
2016/12/12 Javascript
AngularJS使用ocLazyLoad实现js延迟加载
2017/07/05 Javascript
json2.js 入门教程之使用方法与实例分析
2017/09/14 Javascript
jQuery实现鼠标移入移出事件切换功能示例
2018/09/06 jQuery
vue移动端写的拖拽功能示例代码
2020/09/09 Javascript
解决vuex刷新数据消失问题
2020/11/12 Javascript
[01:08:17]2018DOTA2亚洲邀请赛3月29日 小组赛B组 EG VS VGJ.T
2018/03/30 DOTA
Python 随机生成中文验证码的实例代码
2013/03/20 Python
Python实现多线程抓取网页功能实例详解
2017/06/08 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
2018/01/04 Python
Django进阶之CSRF的解决
2018/08/01 Python
Python空间数据处理之GDAL读写遥感图像
2019/08/01 Python
Django如何使用jwt获取用户信息
2020/04/21 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
2020/06/30 Python
python中slice参数过长的处理方法及实例
2020/12/15 Python
创业资金计划书
2014/02/06 职场文书
大学生演讲稿
2014/04/25 职场文书
业务员岗位职责范本
2015/04/03 职场文书
办公用品质量保证书
2015/05/11 职场文书
乡镇干部学习心得体会
2016/01/23 职场文书
Win11更新失败并提示0xc1900101
2022/04/19 数码科技
MySQL数据库简介与基本操作
2022/05/30 MySQL