python讀取excel表格生成erlang數(shù)據(jù)
為了將excel數(shù)據(jù)自動(dòng)轉(zhuǎn)換成所需要的erlang數(shù)據(jù),聽(tīng)同事說(shuō)使用python會(huì)很方便簡(jiǎn)單,就自學(xué)了兩天python,寫(xiě)了一個(gè)比較粗糙的python腳本,不過(guò)能用,有什么優(yōu)化的地方請(qǐng)指教
代碼如下:
#!/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') # 加載文件所有分頁(yè)
sheetnames = wb.get_sheet_names() # 獲取所有分頁(yè)的名字列表
ws = wb.get_sheet_by_name(sheetnames[0]) # 取第一個(gè)分頁(yè)的數(shù)據(jù)
# print 'ws:', ws
# print "Work Sheet Titile:", ws.title # 分頁(yè)名稱(chēng)
# print "Work Sheet Rows:", ws.max_row # 分頁(yè)行數(shù)
# print "Work Sheet Cols:", ws.max_column # 分頁(yè)列數(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): # 從表格第三行開(kāi)始讀取,由于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===========================
# 寫(xiě)入數(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') # 返回該文件名稱(chēng)長(zhǎng)度
# print "find is:", find
if filename[0] == '~' or find == -1: # 文件名以'~'開(kāi)頭或者找不到文件名, 如以'.'開(kāi)頭的文件
continue
else:
split_list = filename.split('.') # 使用'.'分割文件名,獲得[文件名,文件格式]
# print split_list
gen_data(split_list[0]) # 用文件名作為參數(shù)調(diào)用gen_data
start_gen()
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python 對(duì)任意數(shù)據(jù)和曲線進(jìn)行擬合并求出函數(shù)表達(dá)式的三種解決方案
這篇文章主要介紹了python 對(duì)任意數(shù)據(jù)和曲線進(jìn)行擬合并求出函數(shù)表達(dá)式的三種解決方案,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02
Python經(jīng)典題實(shí)戰(zhàn)記錄之百元買(mǎi)百雞
有一道著名的"百錢(qián)買(mǎi)百雞"問(wèn)題大家應(yīng)該都不陌生,這篇文章主要給大家介紹了關(guān)于Python經(jīng)典題實(shí)戰(zhàn)記錄之百元買(mǎi)百雞的相關(guān)資料,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下2023-12-12
Django Admin后臺(tái)添加數(shù)據(jù)庫(kù)視圖過(guò)程解析
這篇文章主要介紹了Django Admin后臺(tái)添加數(shù)據(jù)庫(kù)視圖過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
python 獲取當(dāng)前目錄下的文件目錄和文件名實(shí)例代碼詳解
這篇文章主要介紹了python 獲取當(dāng)前目錄下的文件目錄和文件名實(shí)例代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
python return實(shí)現(xiàn)匯率轉(zhuǎn)換器教程示例
這篇文章主要為大家介紹了python return實(shí)現(xiàn)匯率轉(zhuǎn)換器教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
python爬蟲(chóng)beautiful?soup的使用方式
這篇文章主要介紹了python爬蟲(chóng)beautiful?soup的使用方式,Beautiful?Soup依據(jù)給定的解釋器來(lái)解析html文檔,其依據(jù)html中標(biāo)簽把html文檔在內(nèi)存中轉(zhuǎn)化為類(lèi)似于二叉樹(shù)的數(shù)據(jù)結(jié)構(gòu),并通過(guò)實(shí)現(xiàn)的查詢(xún)方法來(lái)查詢(xún)二叉樹(shù)以得到我們想要的爬蟲(chóng)數(shù)據(jù)2022-08-08
Python中網(wǎng)絡(luò)請(qǐng)求的12種方式
今天,我們要用一行簡(jiǎn)潔的Python代碼來(lái)揭開(kāi)網(wǎng)絡(luò)請(qǐng)求的神秘面紗,別看這行代碼短小,它背后的魔法可強(qiáng)大了,能幫你輕松獲取網(wǎng)頁(yè)數(shù)據(jù)、實(shí)現(xiàn)API調(diào)用,甚至更多,無(wú)論你是想做數(shù)據(jù)分析、網(wǎng)站爬蟲(chóng)還是簡(jiǎn)單的信息查詢(xún),這12種方式都是你的得力助手,需要的朋友可以參考下2024-07-07

