Python将android strings.xml导出到excel

该Python脚本用于批量将多个Android工程中的strings.xml文件解析并导出到Excel,便于翻译团队工作。通过指定文件后缀,脚本会搜索当前目录下所有.xml文件,创建对应的Excel工作表,并生成汇总表统计每个文件的字符串数量。
摘要由CSDN通过智能技术生成

引言:做Android开发的时候要做国际化,需要将Android工程中的字符串资源导出到excel,让专业团队翻译。由于项目比较多,手动复制不现实,故使用python 将xml文件中对应的字符串解析到excel中。

用法

复制以下代码到python文件中,如string2excel.py, 添加可执行权限(mac 电脑 chmod +x string2excel.py),将所有要导出的strings.xml复制到string2excel.py同一目录下,执行./string2excel.py 就会在同级目录下生成excel文件。

下载链接

#!/usr/bin/env python
# -*- coding:utf-8 -*-

#Android国际化: 将xml文件中对应的字符串解析到excel中

import xml.dom.minidom
from xlwt import Workbook
import os
def all_path(dirname,subfix):

    result = []#所有的文件
    filter=[subfix] #设置过滤后的文件类型 当然可以设置多个类型

    for maindir, subdir, file_name_list in os.walk(dirname):

        # print("1:",maindir) #当前主目录
        # print("2:",subdir) #当前主目录下的所有目录
        # print("3:",file_name_list)  #当前主目录下的所有文件

        for filename in file_name_list:
            apath = os.path.join(maindir, filename)#合并成一个完整路径
            ext = os.path.splitext(apath)[1]  # 获取文件后缀 [0]获取的是除了文件名以外的内容
            if ext in filter:
               result.append(apath)

    return result

#新建一个workbook
book = Workbook(encoding='utf-8')
#生成的excel表名称
excel_file_name = 'Android_strings.xls'
#要处理的文件所在路径及文件后缀
all_file=all_path("./",".xml")

#打印所有要输出的文件的路径及名称
print(all_file)

sheet_info = []

class SheetInfo:
    sheet_name=''
    elementCount = 0
    def __init__(self, name, count):
        self.sheet_name = name
        self.elementCount = count


for file in all_file:

    filename= os.path.splitext(os.path.basename(file))[0]

    sheet = book.add_sheet(filename)

    #打开xml
    xmldoc = xml.dom.minidom.parse(file)
    code = xmldoc.getElementsByTagName('string')

    #表头
    row = 0
    sheet.write(row, 0, 'Key')
    sheet.write(row, 1, 'EN')
    row = row+1

    #读取每一行写到excel中
    for node in code:
        for item in node.childNodes:
            sheet.write(row, 0, node.getAttribute('name'))
            sheet.write(row, 1, item.data)

        row = row+1

    #记录表名和行数,用于统计
    sheet_info.append(SheetInfo(filename,row-1))
#保存workbook
book.save(excel_file_name)

#增加汇总表
sheet = book.add_sheet('汇总')
row= 1
for element in sheet_info:
    sheet.write(row, 0, element.sheet_name)
    sheet.write(row, 1, element.elementCount)
    row = row+1
#保存workbook
book.save(excel_file_name)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值