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提示No module named images的解决方法
Sep 29 Python
Python Web框架Flask信号机制(signals)介绍
Jan 01 Python
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
Jan 20 Python
CentOS 6.5下安装Python 3.5.2(与Python2并存)
Jun 05 Python
用python结合jieba和wordcloud实现词云效果
Sep 05 Python
Python编程实现的简单神经网络算法示例
Jan 26 Python
Python异常的检测和处理方法
Oct 26 Python
python调用其他文件函数或类的示例
Jul 16 Python
JetBrains PyCharm(Community版本)的下载、安装和初步使用图文教程详解
Mar 19 Python
python使用Thread的setDaemon启动后台线程教程
Apr 25 Python
PyTorch如何搭建一个简单的网络
Aug 24 Python
python 自动化偷懒的四个实用操作
Apr 11 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
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
Yii分页用法实例详解
2014/12/04 PHP
php天翼开放平台短信发送接口实现方法
2014/12/22 PHP
php获取当月最后一天函数分享
2015/02/02 PHP
PHP框架自动加载类文件原理详解
2017/06/06 PHP
根据分辨率不同,调用不同的css文件
2006/07/07 Javascript
用一段js程序来实现动画功能
2007/03/06 Javascript
Locate a File Using a File Open Dialog Box
2007/06/18 Javascript
IE8 引入跨站数据获取功能说明
2008/07/22 Javascript
js tab效果的实现代码
2009/12/26 Javascript
javascript 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
2009/12/28 Javascript
js限制文本框只能输入数字(正则表达式)
2012/07/15 Javascript
JS解析json数据并将json字符串转化为数组的实现方法
2012/12/25 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
2015/03/23 Javascript
Javascript实现的SHA-256加密算法完整实例
2016/02/02 Javascript
微信小程序 生命周期函数详解
2017/05/24 Javascript
vue.js实现条件渲染的实例代码
2017/06/22 Javascript
vue3中轻松实现switch功能组件的全过程
2021/01/07 Vue.js
状态机的概念和在Python下使用状态机的教程
2015/04/11 Python
Tensorflow简单验证码识别应用
2017/05/25 Python
Python编程之Re模块下的函数介绍
2017/10/28 Python
Flask框架学习笔记之路由和反向路由详解【图文与实例】
2019/08/12 Python
pytorch 预训练层的使用方法
2019/08/20 Python
Python如何实现动态数组
2019/11/02 Python
Python3直接爬取图片URL并保存示例
2019/12/18 Python
简单了解Django ORM常用字段类型及参数配置
2020/01/07 Python
Python实现手势识别
2020/10/21 Python
巴西Bo.Bô官方在线商店:经营奢侈品时尚业务
2020/03/16 全球购物
软件缺陷的分类都有哪些
2014/08/22 面试题
网上商城创业计划书范文
2014/01/31 职场文书
请假条格式范文
2014/04/10 职场文书
县委常委班子对照检查材料思想汇报
2014/09/28 职场文书
婚内房产协议书范本
2014/10/02 职场文书
家庭财产分割协议范文
2014/11/24 职场文书
Canvas跟随鼠标炫彩小球的实现
2021/04/11 Javascript
app场景下uniapp的扫码记录
2022/07/23 Java/Android