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相关推荐

  1. 利用python自动清除Android工程中的多余资源

    ################################################# #环境: win + python 2.7 #作者:马波 #邮箱:mabo02@baidu.com ...

  2. XamarinSQLite教程在Xamarin.Android项目中提取数据库文件

    XamarinSQLite教程在Xamarin.Android项目中提取数据库文件 由于不能直接打开该文件,开发者需要先将数据库文件从Android系统中提取出来.操作步骤如下. (5)选择MyDoc ...

  3. XamarinSQLite教程在Xamarin.Android项目中定位数据库文件

    XamarinSQLite教程在Xamarin.Android项目中定位数据库文件 实际开发中,经常需要验证数据库操作的正确性.这个时候,需要打开数据库文件,进行确认.下面是如何找到MyDocumen ...

  4. python画曲线-利用python画出AUC曲线的实例

    以load_breast_cancer数据集为例,模型细节不重要,重点是画AUC的代码. 直接上代码: from sklearn.datasets import load_breast_cancer ...

  5. 在原有Android项目中快速集成React Native

    前言 对于现有的大多数项目来说都不是从头构建的,而要在原有项目的基础上引入React Native则肯定和用react-native init xxx创建工程不同.因此下面就来说下具体操作.不过在真正 ...

  6. python中词云图怎样变成特殊图案_如何利用python画出一个多变的词云图?(1)...

    问题描述: 如何利用python画出一个多变的词云图? 解决方法:import numpy as np import matplotlib import matplotlib.pyplot as pl ...

  7. 关于如何正确地在android项目中添加第三方jar包

                  在android项目中添加第三方jar包虽然不是一个很复杂的问题,但是确实给很多开发者带来了不小的困扰.我自己就曾经碰到过calss not found exception ...

  8. python怎么画出圆润的曲线_利用python画出AUC曲线的实例

    以load_breast_cancer数据集为例,模型细节不重要,重点是画AUC的代码. 直接上代码: from sklearn.datasets import load_breast_cancer ...

  9. Android公共jar,使用JitPack管理Android项目中公共模块库

    随着项目的功能越来越多,代码和模块维护也越来越复杂,为了减少主项目的代码量,一般都会将一些公共使用的类或者功能模块抽离出来,与主项目解耦分离,当主项目中需要使用的时候,直接进行引用即可. 现在Andr ...

  10. Android项目中如何用好构建神器Gradle?

    摘要:本文作者贾吉鑫为大众点评Android工程师,在进行团队并行开发时,分库遇到的问题很多都要通过Gradle脚本解决.Gradle虽为构建神器,但学习曲线比较陡峭,要想在Android项目中用好G ...

最新文章

  1. html 甘特图_甘特图怎么画?甘特图基础教程,小白快速入门简单易懂
  2. 宝塔ssl验证域名失败_宝塔SSL配置教程
  3. HDU 1853 HDU 3488【有向环最小权值覆盖问题 】最小费用最大流
  4. 全球首发!惯性导航导论(剑桥大学)第九部分
  5. andorid 查看 Activity任务栈
  6. 八个经验处理开关电源PCBLayout
  7. 【ACL2020】结果已出,录用论文抢先看!
  8. python的下载与安装小牛学堂_Python学习_Day1
  9. 塑料制品生产的工艺流程
  10. lol服务器崩溃补偿领取中心,LOL官方: 服务器崩溃补偿! 全服再次免费赠送皮肤一款!...
  11. 蓝桥杯 ADV-222 求arccos
  12. 实现高德地图签到签退(uniapp)
  13. linux设备驱动之pci设备的I/O和内存
  14. C#第四章上机练习2
  15. 虚拟许可服务器访问失败,星外虚拟主机访问被控出现Unspecified error解决方法
  16. 网络安全笔记——第五天:VMware的常用操作
  17. 将doc文件批量转为pdf文件
  18. openlayers 地图限制区域实现方法
  19. HashMap的原理以及关于put方法的介绍
  20. 制作USB多系统启动盘

热门文章

  1. Tensorflow 释放内存
  2. 计算机属性资源管理器已停止工作,经常出现“资源管理器已停止工作”怎么办的完美解决办法...
  3. Stacked Hourglass Networks 理解
  4. R语言自学-Rstudio使用指南
  5. 程序猿段子_程序员段子
  6. spring boot通用办事流程管理软件 毕业设计-附源码211819
  7. CERC 2014 B Mountainous landscape - 线段树 - 凸包 - 三分
  8. 一招秒杀常见网页基本排版布局
  9. 手机浏览器打不开php,php 判断是否是手机浏览器访问?
  10. synchronized与ReentrantLock的介绍、使用、适合场景及比较