ios python 国际化提取代码中的所有汉字

3 篇文章 0 订阅
#-*- coding:utf-8-*-
#处理中文字符的情况
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

import os
import re
import codecs

# 搜寻以下文件类型
suf_set = ('.h', '.m','.pch')
# 项目路径
# ../文件夹路径
project_path = '/Users/css/Desktop/MIT_IPAD'

strStr = {"中文字符采集",}
for (root, dirs, files) in os.walk(project_path):
    for file_name in files:
        if file_name.endswith(suf_set):
            print('-----fileName-------' + file_name)
            with open(os.path.join(root, file_name), 'r+') as f:
                print('========fileName========' + file_name)
                s0 = f.readlines()
                f.close()
                for str in s0:
                    str = str.decode()
                    str = str.strip()
                    str = re.sub("\/\*[\s\S]*\*\/|\/\/.*","",str)
                    str = re.sub("[\u4e00-\u9fa5]", "", str)
                    str = re.sub("[A-Za-z0-9\!\%\[\]\,\。\(\)\{\}\.\"\'\&\+\-\/\|\~]", "", str)
                    str = str.replace(' ', '')
                    str = str.replace('\n', '').replace('\n', '')
                    if (str.find('//') < 0 and str.find('/*') < 0 and str.find('*') < 0 and str.find('#') < 0 and (str != '\n')):
                        str = str + '\n'
                        strStr.add(str)

print ("~~~遍历结束~~~")
list1 = list(strStr)
file_path = os.path.abspath('.') + '/cnStr6.txt'
with codecs.open(file_path, 'a', encoding='utf-8') as f2:
    f2.writelines(list1)
    f2.close()

提取什么的当然是python方便了,奈何自己菜,所以网上找的大神的代码:

大神地址: https://www.jianshu.com/p/ceff184e7a14

我只加了个忽略注释的正则(还有问题)

背景主要是,项目要做国际化,纯代码中的汉字有很多,手动提取太麻烦,所以想到用 python,

代码我试了,能正确提取大部分文字,也有一些文字被漏提取,弄完需要大家校验,校验方法 就是xcode上的finder -》Regular Expression 中输入 

@"[^"]*[\u4E00-\u9FA5]+[^"\n]*?"

使用正则去查询,配合生产的汉字文件,做进一步校验,工作量会少很多,

python的作用是读取文件夹下我们想让他读取的.h.m.pch文件,逐行去提取汉字,用的是re模块的方法,我需要好好研究一些,看来我还是需要继续学学python,还有正则

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值