前言
日常开发过程中,有的时候有一些比较简单、琐碎重复的事情,一次我们可能直接处理了,再遇到一次就不想重搞了,还是撸个小工具来的快一点,边学边写,稍微用python写写就能满足一些需求~
工具
友盟埋点
产品给到到埋点文档通常是excel格式的一个表格,我们要将它写到代码中去,定义相应的key,命名、填写注释等,还要生成友盟的事件批量上传文档,5个以下事件还好,再多就写的很烦了,那就稍微写一个工具吧。
代码
#直接从excel拷贝出来的事件、描述文档
source_file = open("source.txt")
#生成的代码
kotlin_file = open("code.txt",'w')
#生成的友盟上传文档
ument_file = open("umeng_event_upload.txt",'w')
#逐行读取
line = source_file.readline()
while line:
lineResult = line.split()
key = ''
introduce = ''
count = 0
for value in lineResult:
if(count == 0):
key = value
else:
introduce = value
count=count+1
key = key.replace('.','')
introduce = introduce.replace('.','')
#拼接代码,写到文档中
superKey = key.upper()
introduceCode = '/**\n * '+introduce+'\n */'
insertStr = introduceCode+'\nconst val '+superKey+' = \"'+key+'\"\n'
kotlin_file.write(insertStr)
#拼接友盟格式,写到文档中
ument_insert_str = key+', '+introduce+', 0\n'
ument_file.write(ument_insert_str)
line = source_file.readline()
source_file.close()
这里因为直接拷贝出来的格式不太整齐,所以处理了以下,如果定义的比较好的话,还是能省点事的~
使用
- 拷贝事件id、描述到source.txt文档
- 命令行运行 python changePoint.py
- 查看结果,各取所需
生成效果
source.png code.png umeng.png应用icon生成
我们应用的icon,每个分辨率文件夹要放入对应大小的icon,通常设计大佬们给个512*512就O了,照以前的做法,要么让设计大佬帮忙切一下,要么就是自己一个一个去处理,在线改图也好,本地画图改变大小也好,都挺繁琐的,小小写个工具轻松搞定。
代码
#导入库
import os
import PIL.Image
def resizeImage(source,size,outputDir):
width = size[0]
height = size[1]
image = PIL.Image.open(source)
#更改大小
resize_image = image.resize((width,height),PIL.Image.ANTIALIAS)
#创建对应的文件夹
is_exists = os.path.exists(outputDir)
if(is_exists == False):
os.mkdir(outputDir)
#保存更改尺寸后的图片
resize_image.save(outputDir+"/"+source)
#源文件啦,放同级别目录就好啦
source_image = "icon_launcher.png"
#四个文件夹对应的icon大小
h_size = [192,192]
xh_size = [256,256]
xxh_size = [384,384]
xxxh_size = [512,512]
#处理四种size
resizeImage(source_image,h_size,"drawable-hdpi")
resizeImage(source_image,xh_size,"drawable-xhdpi")
resizeImage(source_image,xxh_size,"drawable-xxhdpi")
resizeImage(source_image,xxxh_size,"drawable-xxxhdpi")
使用
- 拿到icon,放到同一目录
- 命令行运行该python文件
- 拷贝对应的图标到项目中使用
效果
icon.png其他脚本待开发补充...
总结
能用代码解决的事情,就不用手动去重复,后续开发过程中有什么比较简单重复的活儿,还是要想想怎么去写个工具,一方面学习python大法,一方面方便自己~
网友评论