python讀取excel表格生成erlang數(shù)據(jù)
更新時間:2017年08月26日 11:40:32 作者:Shay_黃
這篇文章主要為大家詳細介紹了python讀取excel表格生成erlang數(shù)據(jù),具有一定的參考價值,感興趣的小伙伴們可以參考一下
為了將excel數(shù)據(jù)自動轉(zhuǎn)換成所需要的erlang數(shù)據(jù),聽同事說使用python會很方便簡單,就自學了兩天python,寫了一個比較粗糙的python腳本,不過能用,有什么優(yōu)化的地方請指教
代碼如下:
#!/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]) # 取第一個分頁的數(shù)據(jù)
# print 'ws:', ws
# print "Work Sheet Titile:", ws.title # 分頁名稱
# print "Work Sheet Rows:", ws.max_row # 分頁行數(shù)
# print "Work Sheet Cols:", ws.max_column # 分頁列數(shù)
content = [] # 數(shù)據(jù)內(nèi)容
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函數(shù)不包含文件尾,所以為了讀到最后一行需+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===========================
# 寫入數(shù)據(jù)
f = file('./server/' + filename + '.erl','w+')
f.writelines(content)
print 'create new file:', filename + '.erl'
f.close() # 關(guān)閉通道
return
def start_gen():
# 刪除舊的數(shù)據(jù)
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]) # 用文件名作為參數(shù)調(diào)用gen_data
start_gen()
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python 對任意數(shù)據(jù)和曲線進行擬合并求出函數(shù)表達式的三種解決方案
這篇文章主要介紹了python 對任意數(shù)據(jù)和曲線進行擬合并求出函數(shù)表達式的三種解決方案,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02
Python經(jīng)典題實戰(zhàn)記錄之百元買百雞
有一道著名的"百錢買百雞"問題大家應(yīng)該都不陌生,這篇文章主要給大家介紹了關(guān)于Python經(jīng)典題實戰(zhàn)記錄之百元買百雞的相關(guān)資料,文中給出了詳細的代碼示例,需要的朋友可以參考下2023-12-12
Django Admin后臺添加數(shù)據(jù)庫視圖過程解析
這篇文章主要介紹了Django Admin后臺添加數(shù)據(jù)庫視圖過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-04-04
python return實現(xiàn)匯率轉(zhuǎn)換器教程示例
這篇文章主要為大家介紹了python return實現(xiàn)匯率轉(zhuǎn)換器教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06

