日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 将目下的excel全部转xml文件到指定的目录

發布時間:2023/12/14 python 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 将目下的excel全部转xml文件到指定的目录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ? 我們現在來實現將某個目錄下的所有excel文件轉成xml文件到指定的目錄中。新生成的xml文件名稱使用excel文件名。 當然這個的前提得會解析excel文件,上一篇文章說了python如何解析excel文件。這里使用python 自帶的xml庫:xml.dom來生成xml。

? ? ? ??

? ? ? ? 由于腳本比較簡單,就不細說了,代碼里也有比較詳細的注釋。先看看excel文件所在的目錄:


只需要將解析的代碼稍作修改添加生成xml的代碼就OK了。看看python腳本:

#! encoding=utf-8import xlrd import xml.dom.minidom import osdef open_excel(file):try:data = xlrd.open_workbook(file)return dataexcept Exception, e:print str(e)def translate_excel_to_xml(excel_absolute_path, name, generate_xml_dir, colnnameindex=0, by_index=0):#解析excel文件data = open_excel(excel_absolute_path)#獲取需要的工作表table = data.sheets()[by_index] #行數nrows = table.nrows#列數ncols = table.ncols#創建dom文檔對象doc = xml.dom.minidom.Document()#創建根元素info = doc.createElement('info')#將根元素添加到文檔中區doc.appendChild(info)for nrow in range(4, nrows):#創建元素item = doc.createElement('item')for ncol in range(0, ncols):#colnames = table.col_values(ncol)#print colnames # print table.cell(nrow, ncol).valuekey = u"%s" % table.cell(0, ncol).valuevalue = table.cell(nrow, ncol).valueif isinstance(value, float):value = '%0d' % value # print type(key), type(value)#將數據都作為xml中元素的屬性,屬性名就是第一行的值,屬性值就是某一行某一列的值item.setAttribute(key.encode('utf-8'), value.encode('utf-8')) # print table.cell(0, ncol).value#將此元素作為根元素的子節點info.appendChild(item)#要生成的xml文件名generate_xml_name = name.strip().split('.')[0] + '.xml'#要生成的xml文件到某個目錄的絕對路徑geneate_xml_dir = os.path.join(generate_xml_dir, generate_xml_name)f = open(geneate_xml_dir, 'w') # doc.writexml(f)f.write(doc.toprettyxml()) #可以使生成xml有好看的格式,要是不需要,可以使用上一行的代碼f.close()def find_assign_xlsx(xlsx_path, generate_xml_dir):for name in os.listdir(xlsx_path):if name.endswith('.xlsx'):#生成excel文件的絕對路徑excel_absolute_path = os.path.join(xlsx_path, name)#解析excel并轉成xmltranslate_excel_to_xml(excel_absolute_path, name, generate_xml_dir)if __name__ == "__main__":excel_src_path = r'D:\mobile_game_dir\newSVN\callOfSteel\trunk\Design\數據'generate_xml_dir = r'D:\data'find_assign_xlsx(excel_src_path.decode('utf-8'), generate_xml_dir)

代碼其實是很簡單的,代碼里有很詳細的注釋了,這里需要特別注意的是,由于目錄路徑很有中文,python內部使用的unicode編碼,這Windows的簡體中文版本使用的中文編碼不相同,需要將路徑轉成unicode編碼,還有一種寫法,這樣也行find_assign_xlsx(u'D://mobile_game_dir//newSVN//callOfSteel//trunk//Design//數據', generate_xml_dir),這里沒用使用r,python會將路徑名轉換,我直接寫成左雙斜杠來避免路徑名出錯,這個可以自己隨便寫。


? ? ? ? 我這里把生成的xml文件放到D盤下的data目錄中了,看看生成后的data目錄吧:

很方便吧,所有的excel文件都轉成xml了。為了驗證是否正確,我們隨便打開一個excel文件看看:


再看看D盤data目錄下的道具.xml文件:

??

? ? ? ? 可以看的出來,沒什么問題。由于python的簡明和第三方庫強大,寫這種小腳本是非常方便和簡單的。

總結

以上是生活随笔為你收集整理的python 将目下的excel全部转xml文件到指定的目录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。