J.Chou

初遇Python

04 July 2019

PHP是世界上最好的语言.

人生苦短,我用Python.

PHP我没用过。Python也没用过,都听过。

说到脚本,以前自己也写过一些,譬如Perl,Shell。但那都只学了皮毛,过后就忘光了。主要还是日常用的少,处理问题和解决问题的时候也很少注入脚本解决问题的思想。但是,我觉得时刻握有脚本解决问题的思想是非常重要的。毕竟,脚本就是用来帮助提高解决问题效率的。

最近自己也走在学习Python的路上。

Python使用应该非常广泛了,但是我发现,网上相关文档和完整的博客其实非常少,这点让我很失望。因为,我是活学活用的,遇到问题都是在网上寻找解决方案,而网络基本都是很零散的知识点,甚至很多还是错误的,不全面的,这会让你在网上搜索资料的时候会耗费巨大的时间和精力。

下面是自己摸索了大半天写的一个python脚本。功能是用来配置项目工程的versionName和versionCode,写完后感觉很简单,但是由于自己是Python初学者,在开始写的时候命名规范、变量和函数如何定义都不清楚,所有的资源都来源于网络,这就是学习的过程。

#!/usr/bin/python
# coding=utf-8
import os
import datetime

config_file_name = 'config.gradle'

input_app_version = raw_input("Please enter the version code:")
if input_app_version.strip()=='':
    print "version code is null, please enter again..."
    input_app_version = raw_input("Please enter the version code:")
# if appVersion.find("\"") >= 0:
# print "输入有误!"
print input_app_version

#获取新的版本号
def get_version_code(version):
    year = datetime.datetime.now().year
    print year
    return str(year) + "00" + version.replace('.','')
#修改版本名称和版本号
def modify_app_version_info():
    new_content = ''
    has_reade = False
    with open(config_file_name, 'r+') as f:
        for line in f.readlines():
            if "versionName" in line and bool(1-has_reade):
                has_reade = True
                line = '  versionName = %s' % ("\""+input_app_version+"\"",) + '\n'
                print line

            if "versionCode" in line:
                line = '  versionCode = %s' % (get_version_code(input_app_version),) + '\n'
                print line
            new_content += line


    with open(config_file_name, 'r+') as f:
        f.writelines(new_content)

modify_app_version_info()

功能很简单,就是接收输入的版本号,自动改写本地项目的配置文件,配置对应的版本号和versionCode。目前只是简单的支持这个功能,后续可以扩展支持更多的配置属性修改。对于Python而言,主要是针对文件的读取、遍历查找、文本的替换,还涉及到了python一些基本语法(with,if,and,datetime)

参考资料

Python官网

Python3命名规范

— J.Chou