Python 实现iOS 国际化字符串导出Excel表格

简介

  • 由于项目中需要将国际化字符串导出成Excel表格,所以就写了这么一个脚本,目前只实现了导出字符串、后续会继续实现将Excel合入到项目工程中去
  • 该脚本是由Python实现的、主要用到的库是openpyxl操作Excel表格、


    042ec9e15de70b28500fa5b9e06883be.jpg
from openpyxl import Workbook
import os
import re

wb = Workbook()
ws = wb.active
ws.title = 'iOSString'

ws.cell(row=1, column=1).value = 'key'

urlList = []
valueList = []
keyList = []
# savepath = input('请输入需要保存的路径:')

def __getfilename(path):

    f_list = os.listdir(path)
    for i in f_list:
        if os.path.splitext(i)[1] == '.lproj':
            url = path + '/' + i + '/' + 'Localizable.strings'
            urlList.append(url)
            valueList.append(os.path.splitext(i)[0])

    #  TODO:这里应该要用线程控制  目前还不会
    for i in f_list:
        if i == 'Base.lproj':
            url = path + '/' + i + '/' + 'Localizable.strings'
            __dealbasefile(url)

#  处理key值 因为后面要遍历查询
def __dealbasefile(path):

    with open(path) as f:
        context = f.read()
        partten = re.compile(r'"(.*)" = "(.*)";')
        result = partten.findall(context)

        for i in range(len(result)):
            ws.cell(row=i + 2, column=1).value = result[i][0]
            keyList.append(result[i][0])

        for i in range(len(urlList)):
            ws.cell(row=1, column=i + 2).value = valueList[i]
            __dealExcel(urlList[i], i + 2)
  • 该方法主要是用正则表达式检测出key value
def __dealExcel(url, index):

    print('当前处理的文件是=',url)
    with open(url) as f:
        context = f.read()
        partten = re.compile(r'"(.*)" = "(.*)";')
        result = partten.findall(context)

        resultDictionary = {}
        for i in range(len(result)):
            resultDictionary.setdefault(result[i][0], result[i][1])

        for i in range(len(keyList)):
            if keyList[i] in resultDictionary:

                ws.cell(row=i + 2, column=index).value = resultDictionary[keyList[i]]
            else:
                print('字典里面没有该key=',keyList[i])
        # print(resultDictionary)
    wb.save('/Users/tusm/Desktop/douban.xlsx')

  • 主函数 input 需要输入项目中字符串的目录
if __name__ == "__main__":

    path = input('please input string path:')
    __getfilename(path)

后面继续完善

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,382评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,437评论 4 61
  • 启智200高中生,做为补课生,本身重视学习,上进心上。 和博士要求:1人数2路费、住行 启智提供:场地...
    简书jianshu1阅读 229评论 0 0
  • 今天中午来到江湾五角场百联又一店购物广场。走进一楼看舖店介绍,六楼有南京大牌档。 对这家店我颇有好感。去年春天,老...
    老乐铭阅读 439评论 0 0
  • “我溜肩,连单肩包都挂不住,怎么让自己靠?” 单肩包挂不住,那我就背上双肩包。 换了新工作,每天花上很多时间在路上...
    清新唯美语录阅读 2,773评论 0 0

友情链接更多精彩内容