利用Python查找出Android项目中未使用的string
import os# 查找目录下没有用到的drawable图片 def findDrawable(path):filePath = "F:/workspace/android/app/src/main" keyWord = ["R.string.","@string/"]dirs1 = ["values\\strings.xml","values\\strings-en.xml","values-ja\\strings-ja.xml","values-zh\\strings.xml"]# 记录drawable文件夹下的XML文件名(不带路径) stringUesd = []# 记录所有的String strings = []string1 = []with open(path, 'a', encoding='utf-8') as wf:# 遍历当前目录 for root, dirs, files in os.walk(filePath):# 遍历文件 for file in files:# pathFiles 是路径+文件名=绝对路径数组 pathFiles = os.path.join(root, file)# 查找drawable目录下的xml文件 if ".java" in pathFiles or ".xml" in pathFiles:# 读取每个文件 with open(pathFiles, 'r', encoding='utf-8') as w:# 读取文件的每一行 for lines in w:for dir in dirs1:# 读取非values文件 if dir not in pathFiles:for key in keyWord:# 查找Java文件中的string并分割 if "R.string." in key in lines and "*" not in lines:string = lines.split("R.string.")for i in range(len(string)):if i != 0:str = string[i]if ")" in str:str = str.split(")")[0]if ";" in str:str = str.split(";")[0]if "," in str:str = str.split(",")[0]if "\"" in str:str = str.split("\"")[0]if "<" in str:str = str.split("<")[0]if str not in stringUesd:stringUesd.append(str)elif key in lines and "*" not in lines:# 查找xml文件中的string str = lines.split(key)[1]if "<" in str:str = str.split("<")[0]if "\"" in str:str = str.split("\"")[0]if str not in stringUesd:stringUesd.append(str)else:# 查找string.xml中的string名(做了国际化英文和日文) if "name=" in lines:str = lines.split("\">")[0]if "\"" in str:str = str.split("\"")[1]if str not in strings:strings.append(str)for s in strings:if s not in stringUesd and s not in string1:string1.append(s)wf.write(s)wf.write("\n")if __name__ == '__main__':path = "E:/text/Content.txt" findDrawable(path)
利用Python查找出Android项目中未使用的string相关推荐
- 利用python自动清除Android工程中的多余资源
################################################# #环境: win + python 2.7 #作者:马波 #邮箱:mabo02@baidu.com ...
- XamarinSQLite教程在Xamarin.Android项目中提取数据库文件
XamarinSQLite教程在Xamarin.Android项目中提取数据库文件 由于不能直接打开该文件,开发者需要先将数据库文件从Android系统中提取出来.操作步骤如下. (5)选择MyDoc ...
- XamarinSQLite教程在Xamarin.Android项目中定位数据库文件
XamarinSQLite教程在Xamarin.Android项目中定位数据库文件 实际开发中,经常需要验证数据库操作的正确性.这个时候,需要打开数据库文件,进行确认.下面是如何找到MyDocumen ...
- python画曲线-利用python画出AUC曲线的实例
以load_breast_cancer数据集为例,模型细节不重要,重点是画AUC的代码. 直接上代码: from sklearn.datasets import load_breast_cancer ...
- 在原有Android项目中快速集成React Native
前言 对于现有的大多数项目来说都不是从头构建的,而要在原有项目的基础上引入React Native则肯定和用react-native init xxx创建工程不同.因此下面就来说下具体操作.不过在真正 ...
- python中词云图怎样变成特殊图案_如何利用python画出一个多变的词云图?(1)...
问题描述: 如何利用python画出一个多变的词云图? 解决方法:import numpy as np import matplotlib import matplotlib.pyplot as pl ...
- 关于如何正确地在android项目中添加第三方jar包
在android项目中添加第三方jar包虽然不是一个很复杂的问题,但是确实给很多开发者带来了不小的困扰.我自己就曾经碰到过calss not found exception ...
- python怎么画出圆润的曲线_利用python画出AUC曲线的实例
以load_breast_cancer数据集为例,模型细节不重要,重点是画AUC的代码. 直接上代码: from sklearn.datasets import load_breast_cancer ...
- Android公共jar,使用JitPack管理Android项目中公共模块库
随着项目的功能越来越多,代码和模块维护也越来越复杂,为了减少主项目的代码量,一般都会将一些公共使用的类或者功能模块抽离出来,与主项目解耦分离,当主项目中需要使用的时候,直接进行引用即可. 现在Andr ...
- Android项目中如何用好构建神器Gradle?
摘要:本文作者贾吉鑫为大众点评Android工程师,在进行团队并行开发时,分库遇到的问题很多都要通过Gradle脚本解决.Gradle虽为构建神器,但学习曲线比较陡峭,要想在Android项目中用好G ...
最新文章
- html 甘特图_甘特图怎么画?甘特图基础教程,小白快速入门简单易懂
- 宝塔ssl验证域名失败_宝塔SSL配置教程
- HDU 1853 HDU 3488【有向环最小权值覆盖问题 】最小费用最大流
- 全球首发!惯性导航导论(剑桥大学)第九部分
- andorid 查看 Activity任务栈
- 八个经验处理开关电源PCBLayout
- 【ACL2020】结果已出,录用论文抢先看!
- python的下载与安装小牛学堂_Python学习_Day1
- 塑料制品生产的工艺流程
- lol服务器崩溃补偿领取中心,LOL官方: 服务器崩溃补偿! 全服再次免费赠送皮肤一款!...
- 蓝桥杯 ADV-222 求arccos
- 实现高德地图签到签退(uniapp)
- linux设备驱动之pci设备的I/O和内存
- C#第四章上机练习2
- 虚拟许可服务器访问失败,星外虚拟主机访问被控出现Unspecified error解决方法
- 网络安全笔记——第五天:VMware的常用操作
- 将doc文件批量转为pdf文件
- openlayers 地图限制区域实现方法
- HashMap的原理以及关于put方法的介绍
- 制作USB多系统启动盘
热门文章
- Tensorflow 释放内存
- 计算机属性资源管理器已停止工作,经常出现“资源管理器已停止工作”怎么办的完美解决办法...
- Stacked Hourglass Networks 理解
- R语言自学-Rstudio使用指南
- 程序猿段子_程序员段子
- spring boot通用办事流程管理软件 毕业设计-附源码211819
- CERC 2014 B Mountainous landscape - 线段树 - 凸包 - 三分
- 一招秒杀常见网页基本排版布局
- 手机浏览器打不开php,php 判断是否是手机浏览器访问?
- synchronized与ReentrantLock的介绍、使用、适合场景及比较