今天遇到一个问题,说的是要把一个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 vous 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_lines=f.readlines()
#光标移动到文章开头
f.seek(0)
#这个是截取文章,它是把文章清空了,感觉不合理,明显影响了效率
f.truncate() for line in all_the_lines:
print(line)
#print (pattern)
#用来获得匹配的字符
res = pattern.search(line)
if res != None:
res = res.groups()
#把每一行的内容替换掉了以后重新写入
f.write(line.replace(res[0],changeText))
else:
f.write(line) f.close()
def main():
#考虑到脚本的通用性,这个尽量不要写死
#fileDir = "/mnt/zwx318792/hq6735/packages/services/Telephony/res"
fileDir = '.' listFiles(fileDir)
changeString("en")
changeString("es")
changeString("fr")
changeString("nor")
#这个是用来生成一个正则表达式条件
pattern = re.compile('<string name="roaming_warning".*?>(.*)</string>')
fileList_en=[]
fileList_es=[]
fileList_fr=[]
fileList_nor=[]
#这个好像是python脚本的固定写法
if __name__=='__main__': main()
exit()

最新文章

  1. Hash 函数及其重要性
  2. 修改git的远程仓库命令
  3. Java基础之类的初始化顺序
  4. 年轻人你活着不是为了看K线!
  5. Pogo-Cow
  6. Android ScrollView与ViewPager滑动冲突
  7. flash builder 启动ios模拟器失败是什么原因?
  8. Objc基础学习记录5
  9. jquery 触发a链接点击事件
  10. 微信消息处理JAXP-dom解析
  11. Sass@规则
  12. Android TextView文字描边的实现!!
  13. grid.Column INT 所对应的文本
  14. javascript 数组方法解析
  15. 洛谷P1397 [NOI2013]矩阵游戏
  16. web模拟终端博客系统
  17. buzhoutiao
  18. geoserver中除了使用kml来查询数据以外,还可以使用csql或ecsql
  19. 管理开机启动:systemd
  20. 【前端学习笔记】arguments相关

热门文章

  1. [USACO09JAN] 气象测量/气象牛The Baric Bovine 解题报告(DP)
  2. kali 2.0 linux中的Nmap的操作系统扫描功能
  3. Kali linux2.0里Metasploit的服务类型探测
  4. HBase的体系结构
  5. Hadoop框架基础(三)
  6. UVa 11025 The broken pedometer【枚举子集】
  7. [JSOI2007]建筑抢修 优先队列 贪心
  8. Nginx的日志备份操作
  9. [UVa11549]Calculator Conundrum
  10. Mysql忘记rootpassword