Python实战:扫描key完整性

之前在国际版本中,需要支持中英文切换功能,在如此繁多的源文件里要查找源文件里的key是语言资源包是否对应。

正好运用在之前学的python,写了个工具,支持自定义替换标签,批量处理源文件。现在看来,效果还是不错的,可以扫描出不匹配的key。

源文件连接:http://pan.baidu.com/s/1ntC78Zv

期间遇到的难题是这样的:

语言包中存在如下key-value对:"我是;key\"\,\‘" : "i am; key\"\,\‘"

之前用的正则表达式是这样:re.compile(‘"(.*?)"‘),这样只能匹配到"我是key\"。

解决方法有多种,我用的方法分为几步:

一、把整句的\.变以\,即变为:"我是;key\\\" : "i am; key\\\"

二、这时就可以用re.compile(‘"(.*?)"‘),获取到  我是;key\\\

三、再把第一步的替换回来,即变为:我是;key\"\,\‘

fd=open(jsonFilePath,‘r‘)
data=fd.readline()
while data:
    data=data.decode(‘utf-8‘)
    #print ‘raw data:‘+data

    #第一步,找到替换
    p=re.compile(r‘(\\.)‘)
    keeper=p.findall(data)
    #print ‘keeper:%s‘%keeper

    data=p.sub(r‘\\‘,data)
    #print ‘first:‘+data

     #第二步,找到key
     p2=re.compile(r‘"(.*?)"‘)

     s=p2.search(data)
     if None!=s:
         data=s.group(1)
     else:
         data=fd.readline()
         continue
     #print ‘second:‘+data

      result=‘‘

      #第三步,还原
      for ke in keeper:
          target=data.find(‘\\‘)
          if target>=0:
              result=result+data[:target]+ke
              #print ‘----‘+result
              data=data[target+1:]
               #print ‘--------‘+data
      result=result+data    

result就是最后的结果,这就成功获取到的正常的语言包key,处理源文件也一样的原理

时间: 2024-10-05 03:15:31

Python实战:扫描key完整性的相关文章

BoW图像检索Python实战

下文来自我的博客:BoW图像检索Python实战 前几天把HABI哈希图像检索工具包更新到V2.0版本后,小白菜又重新回头来用Python搞BoW词袋模型,一方面主要是练练Python,另一方面也是为了CBIR群开讲的关于图像检索群活动第二期而准备的一些素材.关于BoW,网上堆资料讲得挺好挺全的了,小白菜自己在曾留下过一篇讲解BoW词袋构建过程的博文Bag of Words模型,所以这里主要讲讲BoW的实战.不过在实战前,小白菜还想在结合自己这两年多BoW的思考和沉淀重新以更直白的方式对BoW做

Python实战之KNN实现

Python实战之KNN实现 用Python来实现K近邻分类算法(KNN)已经是一个老生常谈的问题,网上也已经有诸多资料,不过这里我还是决定记录一下自己的学习心得. 1.配置numpy库 numpy库是Python用于矩阵运算的第三方库,大多数数学运算都会依赖这个库来进行,关于numpy库的配置参见:Python配置第三方库Numpy和matplotlib的曲折之路,配置完成后将numpy库整体导入到当前工程中. 2.准备训练样本 这里简单的构造四个点并配以对应标签作为KNN的训练样本: # =

Python实战:美女图片下载器,海量图片任你下载

Python应用现在如火如荼,应用范围很广.因其效率高开发迅速的优势,快速进入编程语言排行榜前几名.本系列文章致力于可以全面系统的介绍Python语言开发知识和相关知识总结.希望大家能够快速入门并学习Python这门语言. 本文是在前一部分Python基础之上Python实战:Python爬虫学习教程,获取电影排行榜,再次升级的Python网页爬虫实战课程. 1.项目概述. 利用XPath和requests模块进行网页抓取与分析,达到网页图片下载的效果. 抓爬图片地址:http://www.2c

Python实战:Python爬虫学习教程,获取电影排行榜

Python应用现在如火如荼,应用范围很广.因其效率高开发迅速的优势,快速进入编程语言排行榜前几名.本系列文章致力于可以全面系统的介绍Python语言开发知识和相关知识总结.希望大家能够快速入门并学习Python这门语言. 本文是在前一部分Python基础之上程序员带你十天快速入门Python,玩转电脑软件开发(四),再次进行的Python爬虫实战课程. 正则表达式实例简单详解 正则表达式干什么用? 就是在字符串中提取我们需要的内容的. 记得哦,要先引用正则表达式模块的哦. re就是正则表达式相

zeromq 学习和python实战

参考文档: 官网 http://zeromq.org/ http://www.cnblogs.com/rainbowzc/p/3357594.html 原理解读 zeromq只是一层针对socket的封装,介于传输层和应用层之间,并不是单独的服务或者程序,仅仅是一套组件. zeromq使用c语言编写,相应速度非常快. 主要有以下几个部分: - 主线程:负责相应用户的请求,比如创建zmq等 - IO线程:主要负责网络IO的调度,每个IO线程会对应一个异步poll(如select,epoll等),使

Python实战之自己主动化评论

Python实战之自己主动化评论 玩csdn博客一个多月了,渐渐发现了一些有意思的事,常常会有人用相同的评论到处刷.不知道是为了加没什么用的积分,还是纯粹为了表达楼主好人.那么问题来了,这种无聊的事情当然最好能够自己主动化咯.自己也来试了一把,纯属娱乐. 登陆 要评论当然要能够先进行登陆,採用 requests 库进行处理,尝试是否能看到自己的消息列表: msg_url ="http://msg.csdn.net/" r = requests.get(msg_url, auth=('d

Python实战之评论水军

Python实战之评论水军 玩csdn博客一个多月了,渐渐发现了一些有意思的事,经常会有人用同样的评论到处刷,不知道是为了加没什么用的积分,还是纯粹为了表达楼主好人.那么问题来了,这种无聊的事情当然最好能够自动化咯,自己也来试了一把,纯属娱乐. 登陆 要评论当然要能够先进行登陆,采用 requests 库进行处理,尝试能否看到自己的消息列表: msg_url ="http://msg.csdn.net/" r = requests.get(msg_url, auth=('drfish'

2016马哥教育重磅来袭--Python实战网络班

如何确保自己职场快人一步?如何成就非凡之路?前景开阔.上手容易.名师阵容.丰富一线案例的马哥2016全新python开发课程,你值得拥有! 在众多朋友的期待与欢呼中,马哥教育重磅推出了Python实战网络班. 到底马哥2016全新Python实战班都有什么特别之处呢?下面就来一睹为快吧!         如果有那么一丝丝的心动,请不要压抑自己的感情!速速联系马哥教育课程顾问们吧!(QQ:1661815153.2813150558.1660809109~)

python实战-字典使用

python实战-字典使用 使用字典统计字符出现次数 #! /usr/bin/env python #coding:utf-8 #定义一个函数,接收字符串,统计出每个字符的出现次数 #实现思路:字典实现,看字符是否在字典中,不在则计入字典,否则+1. def histogram(str): dic = dict() for c in str: if c not in dic: dic[c] = 1 #add else: dic[c]+=1 #update return dic print his