pythonテーブルを読み込んで対応ファイルを生成
2289 ワード
# coding=utf-8
import os
import sys
import xlrd
import codecs
import collections
import json
import io
#
def genLangJson (fileName, nameIdx, idx):
data = xlrd.open_workbook(fileName)
table = data.sheets()[0]
rowNum = table.nrows #
colNum = table.ncols #
if colNum <= idx:
return False
lang = '' # 0
data = {}
for lineIdx in range(rowNum):
name = table.cell(lineIdx,nameIdx).value # N key
value = table.cell(lineIdx,idx).value # N
if not name.strip():
# token
continue
if not value.strip():
#
print("For " + lang + "in line " + str(lineIdx+1) + "miss")
continue
if lineIdx == 0:
#
lang = value # en_us es_es
else:
# print("%s" % (value) )
data[name] = value
lang = lang#.encode("utf-8")
print("lang:%s" % lang)
# ,
curPath = os.path.dirname(os.path.abspath(__file__))
jsonPath = os.path.join(curPath, "res", "lang1", lang, "text.txt")
# jsonPath = curPath + "\\" + lang + "\\text.txt"
#
dirname = os.path.dirname(jsonPath)
if not os.path.exists(dirname):
os.makedirs(dirname)
with io.open(jsonPath, 'w', encoding='utf-8') as f:
f.write(json.dumps(data, ensure_ascii=False, indent=4, sort_keys=True))
return True
# json
def makeJsonFile(fileName, tokenIdx, startIdx):
idx = startIdx
while (1):
bret = genLangJson(fileName, tokenIdx, idx) # ,
if (bret == False):
break
idx += 1
if __name__ == '__main__':
# excel -
curPath = os.path.dirname(os.path.abspath(__file__))
xlsFile = curPath + '\\lang.xlsx'
print("xlsx file:%s" % xlsFile)
# ( 0 )
tokenIdx = 0 # Token key
startIdx = 1 #
# fntIdx = 3 # ttf_xx
makeJsonFile(xlsFile, tokenIdx, startIdx)