由于本人是写iOS的,所以demo就拿iOS的工程示例了,问题的需求来源是,app发了一版了,然后要整多语言,需要把工程中所有有用的中文字符拿去翻译,然后就参考了代码混淆的一个python脚本自己写了一个简单的例子,如下:
image.png
main.py文件
import os
import XLGetCNStrTool
def main():
os.system("XLGetCNStrTool.py")
print('add spam code finished!!')
if __name__ == '__main__':
main()
XLGetCNStrTool.py
#-*- coding:utf-8-*-
#处理中文字符的情况
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import os
import re
import codecs
# 搜寻以下文件类型
suf_set = ('.h', '.m','.pch')
# 项目路径
# ../文件夹路径
project_path = '../LBankApp'
strStr = {"中文字符采集",}
for (root, dirs, files) in os.walk(project_path):
for file_name in files:
if file_name.endswith(suf_set):
print('-----fileName-------' + file_name)
with open(os.path.join(root, file_name), 'r+') as f:
print('========fileName========' + file_name)
s0 = f.readlines()
f.close()
for str in s0:
str = str.decode()
str = str.strip()
str = re.sub("[\u4e00-\u9fa5]", "", str)
str = re.sub("[A-Za-z0-9\!\%\[\]\,\。\(\)\{\}\.\"\'\&\+\-\/\|\~]", "", str)
str = str.replace(' ', '')
str = str.replace('\n', '').replace('\n', '')
if (str.find('//') < 0 and str.find('/*') < 0 and str.find('*') < 0 and str.find('#') < 0 and (str != '\n')):
str = str + '\n'
strStr.add(str)
print ("~~~遍历结束~~~")
list1 = list(strStr)
file_path = os.path.abspath('.') + '/cnStr.txt'
with codecs.open(file_path, 'a', encoding='utf-8') as f2:
f2.writelines(list1)
f2.close()
image.png
下面是代码混淆脚本:https://github.com/xinle13/addConfuseCode
网友评论