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,处理源文件也一样的原理
Python实战:扫描key完整性的更多相关文章
- 再一波Python实战项目列表
前言: 近几年Python可谓是大热啊,很多人都纷纷投入Python的学习中,以前我们实验楼总结过多篇Python实战项目列表,不但有用还有趣,最主要的是咱们实验楼不但有详细的开发教程,更有在线开发环 ...
- python实战博客
2018-10-31 更新Logging日志记录以及异常捕获 感谢廖大教程.Python实战 直接在闲置的服务器上开发.阿里云Centos 6.8 64位. 1 搭建开发环境 Python 环境是Py ...
- python实战提升--1
#python实战提升 1. 如何在列表.字典.集合中根据条件筛选数据? python中for _ in range(10)与for i in range(10)有何区别 下划线表示 临时变量, 仅用 ...
- 自然语言处理之中文分词器-jieba分词器详解及python实战
(转https://blog.csdn.net/gzmfxy/article/details/78994396) 中文分词是中文文本处理的一个基础步骤,也是中文人机自然语言交互的基础模块,在进行中文自 ...
- zeromq 学习和python实战
参考文档: 官网 http://zeromq.org/ http://www.cnblogs.com/rainbowzc/p/3357594.html 原理解读 zeromq只是一层针对socke ...
- Python实战:美女图片下载器,海量图片任你下载
Python应用现在如火如荼,应用范围很广.因其效率高开发迅速的优势,快速进入编程语言排行榜前几名.本系列文章致力于可以全面系统的介绍Python语言开发知识和相关知识总结.希望大家能够快速入门并学习 ...
- Python实战:Python爬虫学习教程,获取电影排行榜
Python应用现在如火如荼,应用范围很广.因其效率高开发迅速的优势,快速进入编程语言排行榜前几名.本系列文章致力于可以全面系统的介绍Python语言开发知识和相关知识总结.希望大家能够快速入门并学习 ...
- python实战--数据结构二叉树
此文将讲述如何用python实战解决二叉树实验 前面已经讲述了python语言的基本用法,现在让我们实战一下具体明确python的用法 点击我进入python速成笔记 先看一下最终效果图: 首先我们要 ...
- python实战:用70行代码写了一个山炮计算器!
python实战训练:用70行代码写了个山炮计算器! 好了...好了...各位因为我是三年级而发牢骚的各位伙伴们,我第一次为大家插播了python的基础实战训练.这个,我是想给,那些python基础一 ...
随机推荐
- [译]reset, checkout和revert
git reset, git checkout, git revert能让你撤销你本地仓储的一些修改, 前两种命令可以作用于commit或者一个文件. Commit级别的操作 注意了git reve ...
- OC中的extern,static,const
const的作用: const仅仅用来修饰右边的变量(基本数据变量p,指针变量*p). 被const修饰的变量是只读的. static的作用: 修饰局部变量: 1.延长局部变量的生命周期,程序结束才会 ...
- Excel—身份证生日提取
一.只有18位的身份证号码 如: 身份证号 330682199302264000 41120019890823729X 231081199002256839 131101198203154666 36 ...
- CSS高效开发实战:CSS 3、LESS、SASS、Bootstrap、Foundation --读书笔记(4)构造尺寸更灵活的背景
相比传统的图片背景来说,使用CSS构造背景色不仅可以降低网络传输的开销,更由于其尺寸的可控性受到开发者的青睐. 如设计师设计了一张背景图片作为标题背景,如图5.18所示.对于用电脑浏览网页的用户来说, ...
- PHP常用字符串的操作函数
字符串转换类函数 addcslashes函数:以C语言风格使用反斜线转义字符串中的字符 addslashes函数:使用反斜线引用字符串 chop函数:清除字符串中的连续空格 get_html_tran ...
- Shell入门教程:算术运算
Bash的算术运算有以下几种方法: 序号 名称 语法 范例 1 算术扩展 $((算术式)) r=$((2+5*8)) 2 使用外部程序 expr 算术式 r=`expr 4 + 5` 3 使用 $[] ...
- sql select 综合运用
1 : 多个表联合查询 select j.id, jt.Name, j.ApproveType , j.ProductCode, j.Cu ...
- css实现翻页效果
如图,鼠标移动到图上,实现右上角翻页的效果,本例主要border边框的设置. 一.基本概念 <html> <head> <style> #demo{ width:0 ...
- HikariCP
HiKariCP是数据库连接池的一个后起之秀,号称性能最好,可以完美地PK掉其他连接池. 为何要使用HiKariCP?这要先从BoneCP说起: 什么?不是有C3P0/DBCP这些成熟的数据库连接池吗 ...
- Python之路
Python学习之路 第一天 Python之路,Day1 - Python基础1介绍.基本语法.流程控制 第一天作业第二天 Python之路,Day2 - Pytho ...