使用Python提取中文字符
#功能:国际化测试,用于提取应用设计包中的中文字符,并输出report
#解压---筛选---整理路径---提取中文---输出报告
#################################################################
#author: 陈月白
#_blogs: http://www.cnblogs.com/chenyuebai/
################################################################# #功能:国际化测试,用于提取应用设计包中中文字符,并输出report
#yuebai 20160328
#解压---筛选---整理路径---提取中文---输出报告 #-*- coding: utf-8 -*- import os
import shutil
import sys
import re
import zipfile
import glob workPath = "C:\\users\\yuebai\\Desktop\\国际化测试包"
reportPath = "C:\\users\\yuebai\\Desktop\\国际化输出报告" #定义日志函数
def logInfo(info):
log = open("%s\\run.log"%workPath,"a")
log.write("[Info] %s\n"%info)
log.close() #定义解压文件函数
def extractZip(fileName,extraPath):
f = zipfile.ZipFile(fileName,"r")
f.extractall(extraPath)
f.close()
logInfo("%s文件解压完成"%fileName) #功能函数,找出中文字符
def getChinese(fileFullPath):
isChinese = re.compile("([\u4e00-\u9fa5]+)+?")
f = open(fileFullPath,"r",encoding="UTF-8") #打开待提取文件
f_in = open("%s\\chineseTxt.txt"%reportPath,"a") #打开输出文件 for line in f.readlines():
getStr = isChinese.findall(str(line)) #逐行判断提取中文
if not getStr == []:
f_in.write("发现中文字符(╯' - ')╯︵ ┻━┻ ,文件路径为%s\n"%fileFullPath)
f_in.write("%s\n"%line) f.close()
f_in.close() logInfo("查找完成,输出报告路径:%s"%reportPath) #功能函数,列出路径下所有文件
def listAny(workPath):
if not os.path.exists(workPath):
print("Error,no such dictionary%s,plz check"%workPath)
zipList = os.listdir(workPath)
return zipList #删除非zip类型的包
notZipList = glob.glob("%s\\*[!p]"%workPath)
logInfo("notZipList =%s,prepare to delete"%notZipList)
for i in notZipList:
os.remove(i)
logInfo("删除非zip包完成") #获取zip包列表
zipList = listAny(workPath) #取zip包解压
#print("开始提取")
for zipPackage in zipList:
zipName = os.path.split(zipPackage)[0] #切割获取文件名
extraPath = os.path.join(workPath,zipName) #在当前文件夹下创建和zip包同名文件夹,用以做解压目标路径
os.makedirs(extraPath)
logInfo("构造解压路径完成,extraPath =%s"%extraPath) extraFilePath = os.path.join(workPath,zipPackage) #待解压文件绝对路径 #开始解压zip包,完成后删除源zip文件
extractZip(extraFilePath, extraPath)
os.remove(extraFilePath) #将扩展目录下流程文件汇总至\\plan下
if os.path.exists("%s\\Plans\\Extend"%extraPath):
tmpExtendPath = ("%s\\Plans\\Extend"%extraPath)
tmpPlanPath = ("%s\\Plans"%extraPath) for t in os.listdir(tmpExtendPath):
t_FullPath = ("%s\\%s\\"%(tmpExtendPath,t))
#print("t_FullPath =",t_FullPath)
if os.path.isfile(t_FullPath):
shutil.move(t_FullPath,tmpPlanPath) #调用getChinese,提取中文字符
for y in os.listdir(tmpPlanPath):
y_fullPath = os.path.join(tmpPlanPath,y)
#print(y_fullPath) logInfo("开始检查文件%s,检查结果路径:%s"%(y_fullPath,reportPath))
getChinese(y_fullPath) #剔除注释
f_in = open("%s\\chineseTxt.txt"%reportPath,"r") #全部中文文件
f_comment = open("%s\\comment.txt"%reportPath,"a") #打开待写入注释文件
f_result = open("%s\\result.txt"%reportPath,"a") #结果文件 for line in f_in.readlines():
if re.findall("^//.*",line):
f_comment.write("%s\n"%line)
else:
f_result.write("%s\n"%line) f_in.close()
f_comment.close()
f_result.close() print("提取完成,结果路径:%s"%reportPath)
使用Python提取中文字符的更多相关文章
- python处理中文字符
1.在py文件中使用中文字符 unicode.py文件内容如下所示: # -*- coding:utf-8 -*- str_ch = '我们women' uni_ch = u'我们women' pri ...
- [python]有中文字符程序异常的解决方案
一. 含有中文字符无法运行 在python3中用的是Unicode编码,Unicode号称万国码,可以向所有的编码进行兼容.不会出现这种问题. Python2中使用的是ASCII编码,会出现这种问题. ...
- python 匹配中文字符
参考: http://hi.baidu.com/nivrrex/blog/item/e6ccaf511d0926888d543071.html http://topic.csdn. ...
- python实现中文字符繁体和简体中文转换-乾颐堂
需求:把中文字符串进行繁体和简体中文的转换: 思路:引入简繁体处理库,有兴趣的同学可以研究一下内部实现,都是python写的 1.下载zh_wiki.py及langconv zh_wiki.py:ht ...
- Python解决中文字符的问题
from __future__ import unicode_literals print(type("test")) #<type 'unicode'> Chinat ...
- python 连接数据库-设置oracle ,mysql 中文字符问题
import cx_Oracle import MySQLdb def conn_oracle(): cnn = cx_Oracle.connect('用户名','密码','ip:端口号/数据库') ...
- python中文字符乱码(GB2312,GBK,GB18030相关的问题)
转自博主 crifan http://againinput4.blog.163.com/blog/static/1727994912011111011432810/ 在玩wordpress的一个博客搬 ...
- Python中文字符的理解:str()、repr()、print
Python中文字符的理解:str().repr().print 字数1384 阅读4 评论0 喜欢0 都说Python人不把文字编码这块从头到尾.从古至今全研究通透的话是完全玩不转的.我终于深刻的理 ...
- 中文字符 unicode转utf-8函数 python实现
unicode编码范围 00000000-0000007F的字符,用单个字节来表示: 00000080-000007FF的字符用两个字节表示 (中文的编码范围) 00000800-0000FFFF的字 ...
随机推荐
- The Euler function(线性筛欧拉函数)
/* 题意:(n)表示小于n与n互质的数有多少个,给你两个数a,b让你计算a+(a+1)+(a+2)+......+b; 初步思路:暴力搞一下,打表 #放弃:打了十几分钟没打完 #改进:欧拉函数:具体 ...
- Scrum Meeting Alpha - 6
Scrum Meeting Alpha - 6 NewTeam 2017/10/31 地点:主南203 任务反馈 团队成员 完成任务 计划任务 安万贺 完成了个人博客和班级列表部分API的包装 完成个 ...
- css定位讲解
定位分三种:相对定位,绝对定位,固定定位; 相对定位:position:relatve; 绝对定位:position:absolute; 固定定位:position:fixed; 一, ...
- Centos下配置tomcat7的https证书
近期搞定了HTTPS配置,特此记录. 1.把下载的文件拷贝到cert文件夹,然后放在tomcat根目录下(与conf同一级目录).2.配置conf下的server.xml,修改下面3个节点,如下: & ...
- [转]Oracle 索引质量分析
http://blog.csdn.net/leshami/article/details/23687137 索引质量的高低对数据库整体性能有着直接的影响.良好高质量的索引使得数据库性能得以数量级别的提 ...
- Drools文档(六) 用户手册
用户手册 基础 无状态的知识Session Drools规则引擎拥有大量的用例和功能,我们要如何开始?你无须担心,这些复杂性是分层的,你可以用简单的用例来逐步入门. 无状态Session,无须使用推理 ...
- Python [习题] 字典排序
[习题] 对此字典分别按照value 和key 如何排序? dic1 = {'and':40, 'a':54, 'is':60, 'path':139, 'the':124, 'os':49} In ...
- 小程序基于疼讯qcloud的nodejs开发服务器部署
腾讯,疼讯,很疼. 请慎重看腾讯给出的文档,最好做一个笔记. 我只能说我能力有限,在腾讯云小程序的文档中跳了n天. 最后还是觉得记录下来,以防止我的cpu过载给烧了. 此文档是对<小程序 ...
- 【微软大法好】VS Tools for AI全攻略(3)
接着上文,现在我们需要一种穷人的方法来搭建好Azure虚拟机. 思路很简单,因为AI组件的原理其实是传送了script文件和命令上去,那么我们这个虚拟机只要做好了所有的配置,那么我们就可以将它当作深度 ...
- 程序员的自我救赎---1.4.2: 核心框架讲解(BLL&Tool)
<前言> <目录> (一) Winner2.0 框架基础分析 (二) 短信中心 (三)SSO单点登录 (四)PLSQL报表系统 (五)钱包系统 (六)GPU支付中心 (七)权限 ...