用Python3 编写excel和txt的转换工具

来源:互联网 发布:千鸽转换淘宝 编辑:程序博客网 时间:2024/05/17 01:28
前段时间为了给一个程序做语言包自动导入导出工具,发现Python做工具还是挺好用的,尤其是对各种编码的支持。

安装xlwt3和xlrd3,它们是针对Python3的版本。

将lang下的日文语言包导出到一个excel里:

点击(此处)折叠或打开

  1. import os
  2. import glob
  3. path = os.getcwd()
  4. files = glob.glob('../trunk/Resource/lang/ja/*.txt')
  5. import xlwt3

  6. if len(files)> 0:
  7.     wb = xlwt3.Workbook()
  8.     for file in files:

  9.         fileName = file.split('\\')[1].split('.')[0]
  10.         print(fileName)
  11.         ws = wb.add_sheet(fileName)
  12.         with open(file, encoding='utf-8') as a_file:
  13.             line_number = 0
  14.             for a_line in a_file:
  15.                 a_line = a_line.rstrip()
  16.                 mark = a_line.find("=")
  17.                 ws.write(line_number, 0, a_line[0:mark])
  18.                 ws.write(line_number, 1, a_line[mark+1:])
  19.                 ws.col(0).width= 8000
  20.                 ws.col(1).width= 40000
  21.                 line_number += 1
  22.             a_file.close()

  23.     wb.save('langPack_ja.xls')
sourceExcel下的excel文件导出为各txt文件:

点击(此处)折叠或打开

  1. import os
  2. import glob
  3. import xlrd3 as xlrd
  4. import re

  5. path = os.getcwd()
  6. files = glob.glob('sourceExcel/*')

  7. for file in files:
  8.     wb = xlrd.open_workbook(file)

  9.     for sheetName in wb.sheet_names():
  10.         txtFile = open('outputTxts/'+ sheetName +'.txt', mode='w', encoding='utf-8')
  11.         sheet = wb.sheet_by_name(sheetName)
  12.         for rownum in range(sheet.nrows):
  13.             v1 = sheet.cell(rownum, 0).value
  14.             if (type(v1)== float):
  15.                 v1 = str(v1)
  16.                 v1 = re.sub('\.0*$',"", v1)
  17.             v1 = v1.rstrip()
  18.             v2 = sheet.cell(rownum, 1).value
  19.             if (type(v2)== float):
  20.                 v2 = str(v2)
  21.                 v2 = re.sub('\.0*$',"", v2)
  22.             v2 = v2.rstrip()
  23.             dataStr = v1 + '=' + v2+ '\n'
  24.             txtFile.write(dataStr)
  25.         txtFile.close()

http://blog.chinaunix.net/uid-20593721-id-3228789.html