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è)名稱 # 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') # 返回該文件名稱長(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中的靜態(tài)方法與類(lèi)成員方法
這篇文章主要介紹了關(guān)于Python中靜態(tài)方法與類(lèi)成員的相關(guān)資料,文中通過(guò)示例代碼給大家詳細(xì)總結(jié)了兩者在語(yǔ)法和使用上的區(qū)別,有需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-02-02Python大批量寫(xiě)入數(shù)據(jù)(百萬(wàn)級(jí)別)的方法
這篇文章主要給大家介紹了關(guān)于Python大批量寫(xiě)入數(shù)據(jù)(百萬(wàn)級(jí)別)的相關(guān)資料,在日常處理數(shù)據(jù)的過(guò)程中,我們都有批量寫(xiě)入數(shù)據(jù)的需求,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考下2023-07-07python爬蟲(chóng)使用scrapy注意事項(xiàng)
在本篇文章里小編給大家整理的是一篇關(guān)于python爬蟲(chóng)使用scrapy注意事項(xiàng)的相關(guān)文章,對(duì)此有興趣的朋友們可以學(xué)習(xí)下。2020-11-11PyTorch中view()與?reshape()的區(qū)別詳析
這篇文章主要給大家介紹了關(guān)于PyTorch中view()?與?reshape()?區(qū)別的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-01-01python對(duì)raw格式照片進(jìn)行降噪處理的方法詳解
要對(duì)RAW格式的照片進(jìn)行降噪,我們可以使用rawpy庫(kù)來(lái)讀取RAW圖像,并使用imageio庫(kù)將處理后的圖像保存為其他格式,如PNG或JPEG,本文將詳細(xì)給大家介紹python如何對(duì)raw格式照片進(jìn)行降噪處理,文中有詳細(xì)的代碼流程,需要的朋友可以參考下2023-05-05Selenium+Python 自動(dòng)化操控登錄界面實(shí)例(有簡(jiǎn)單驗(yàn)證碼圖片校驗(yàn))
今天小編就為大家分享一篇Selenium+Python 自動(dòng)化操控登錄界面實(shí)例(有簡(jiǎn)單驗(yàn)證碼圖片校驗(yàn)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06Python?Struct庫(kù)之pack和unpack舉例詳解
這篇文章主要給大家介紹了關(guān)于Python?Struct庫(kù)之pack和unpack的相關(guān)資料,pack和unpack在處理二進(jìn)制流中比較常用的封包、解包格式,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02