【Python】版本自动控制/在上一次版本中自动生成本次的版本号

 

1、代码

直接调用 VersionControl.get_version() 即可返回本次版本号(上一次版本号+1)

复制代码
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
@Time    :2021/10/28 19:07
@Author  :维斯
@File    :VersionControl.py
@Version :1.0
@Function:
"""


class VersionControl:
    @staticmethod
    def __read_file(version_file):
        with open(version_file, 'r') as f:
            data = f.read()
            return data

    @staticmethod
    def __write_file(version_file, version):
        with open(version_file, 'w') as f:
            f.write(version)

    @staticmethod
    def __get(version):
        ver = version.replace('.', '')
        now_version = int(ver) + 1
        str_version = str(now_version).zfill(3)
        str_list = []
        for i in str_version:
            str_list.append(i)
        str_new = ""
        for i in str_list:
            str_new += i + "."
        str_new = str_new[:-1]
        return str_new

    @staticmethod
    def get_version(version_file=None):
        """
        默认文件为当前路径下的versionControl.txt文件
        @param version_file: 
        @return: 
        """
        if version_file is None:
            version_file = 'versionControl.txt'
        version = VersionControl.__get(VersionControl.__read_file(version_file))
        VersionControl.__write_file(version_file, version)
        return version


if __name__ == '__main__':
    print(VersionControl.get_version())
复制代码

2、版本文件

 

 

3、结果

 

posted @   淡怀  阅读(265)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
历史上的今天:
2019-10-28 【Python】【微信】itchat库
2019-10-28 【Python】+数字时间戳转换为指定格式
2019-10-28 【Python】【爬虫】+爬取新闻

目录导航

点击右上角即可分享
微信分享提示