python-实现xml字符串替换功能
今天遇到⼀个问题,说的是要把⼀个android res⽬录下,所有name=xx的字符串的值,⾃⼰参照⽹上的⽅法,写了⼀个脚本。记录如下,⽅便以后使⽤
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os
import re
#定义⼀个函数,筛选所有⽂件
#list files
def listFiles(dirPath):
#walk⽅法,root-⽂件夹路径;dirs-含有的⼦⽂件夹;files-含有的⽂件
for root,dirs,files in os.walk(dirPath):
for fileObj in files:
if"-es"in root:
#获得某个⽂件的绝对路径并添加到列表中
fileList_es.append(os.path.join(root,fileObj))
elif"-en"in root:
fileList_en.append(os.path.join(root,fileObj))
elif"-fr"in root:
fileList_fr.append(os.path.join(root,fileObj))
else:
fileList_nor.append(os.path.join(root,fileObj))
#定义⼀个函数,更改字符串
def changeString(style):
changeText = ""
if style == "en":
fileList = fileList_en
changeText = '"You are going to use the roaming data service ,any price information please contact your service provider"'
elif style == "es":
fileList = fileList_es
changeText = '"Usted va a utilizar el servicio de datos en itinerancia, cualquier información de precios por favor póngase en contacto con su proveedor de servicios"' elif style == "fr":
fileList = fileList_fr
changeText = '"Vous allez utiliser le service de données en itinérance, les informations de prix s\'il vo
us plaît contacter votre fournisseur de services"'
else:
fileList = fileList_nor
changeText = '"You are going to use the roaming data service ,any price information please contact your service provider"'
for fileObj in fileList:
#以读写模式打开⽂件
f = open(fileObj,'r+')
#读取所有内容,每⼀⾏放到⼀个列表⾥⾯
all_the_adlines()
#光标移动到⽂章开头
f.seek(0)
#这个是截取⽂章,它是把⽂章清空了,感觉不合理,明显影响了效率
for line in all_the_lines:
print(line)
#print (pattern)
#⽤来获得匹配的字符
res = pattern.search(line)
if res != None:
res = ups()
#把每⼀⾏的内容替换掉了以后重新写⼊
f.place(res[0],changeText))
else:
f.write(line)
f.close()
def main():
#考虑到脚本的通⽤性,这个尽量不要写死
#fileDir = "/mnt/zwx318792/hq6735/packages/services/Telephony/res"python处理xml文件
fileDir = '.'
listFiles(fileDir)
changeString("en")
changeString("es")
changeString("fr")
changeString("nor")
#这个是⽤来⽣成⼀个正则表达式条件
pattern = repile('<string name="roaming_warning".*?>(.*)</string>')
fileList_en=[]
fileList_es=[]
fileList_fr=[]
fileList_nor=[]
#这个好像是python脚本的固定写法
if__name__=='__main__':
main() exit()
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论