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使用post提交数据到远程url的方法
Apr 29 Python
编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法
Jan 20 Python
python如何通过protobuf实现rpc
Mar 06 Python
人工智能最火编程语言 Python大战Java!
Nov 13 Python
Django使用httpresponse返回用户头像实例代码
Jan 26 Python
python3判断url链接是否为404的方法
Aug 10 Python
如何在python中实现随机选择
Nov 02 Python
解决Tensorflow sess.run导致的内存溢出问题
Feb 05 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
Feb 17 Python
virtualenv介绍及简明教程
Jun 23 Python
浅谈pytorch中stack和cat的及to_tensor的坑
May 20 Python
Python爬虫基础初探selenium
May 31 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
pw的一个放后门的方法分析
2007/10/08 PHP
php中取得文件的后缀名?
2012/02/20 PHP
PHP使用mysql_fetch_row查询获得数据行列表的方法
2015/03/18 PHP
php session 写入数据库
2016/02/13 PHP
Nginx环境下PHP flush失效的解决方法
2016/10/19 PHP
PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析
2017/02/04 PHP
php文件上传类的分享
2017/07/06 PHP
laravel 创建命令行命令的图文教程
2019/10/23 PHP
extjs关于treePanel+chekBox全部选中以及清空选中问题探讨
2013/04/02 Javascript
jquery中get和post的简单实例
2014/02/04 Javascript
jquery获取当前点击对象的value方法
2014/02/28 Javascript
浅析在javascript中创建对象的各种模式
2016/05/06 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
2016/06/27 Javascript
jQuery检查元素存在性(推荐)
2016/09/17 Javascript
详解Ubuntu安装angular-cli遇到的坑
2018/09/08 Javascript
javascript中可能用得到的全部的排序算法
2020/03/05 Javascript
Vue中inheritAttrs的使用实例详解
2020/12/31 Vue.js
[03:10]超级美酒第四天 fy拉比克秀 大合集
2018/06/05 DOTA
Python2.5/2.6实用教程 入门基础篇
2009/11/29 Python
python抓取京东商城手机列表url实例代码
2013/12/18 Python
windows下ipython的安装与使用详解
2016/10/20 Python
Jupyter加载文件的实现方法
2020/04/14 Python
解决tensorflow读取本地MNITS_data失败的原因
2020/06/22 Python
python和go语言的区别是什么
2020/07/20 Python
Python代码覆盖率统计工具coverage.py用法详解
2020/11/25 Python
一款纯css3制作的2015年元旦雪人动画特效教程
2014/12/29 HTML / CSS
html5 横向滑动导航栏的方法示例
2020/05/08 HTML / CSS
在html页面中取得session中的值的方法
2020/08/11 HTML / CSS
丽笙酒店官方网站:Radisson Hotels
2019/05/07 全球购物
时尚孕妇装:Ingrid & Isabel
2019/05/08 全球购物
建筑安全标语
2014/06/07 职场文书
乡党委干部党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
浅谈怎么给Python添加类型标注
2021/06/08 Python
springBoot基于webSocket实现扫码登录
2021/06/22 Java/Android
js前端图片加载异常兜底方案
2022/06/21 Javascript