Python 中增加版本号

2023-12-29

我正在尝试对 CVS 中的文件进行版本号更新。

我最初的逻辑是更新一个浮点数(1.1 --> 1.2 --> 1.3),它工作得很好,直到我到达 1.9,然后它更新到 2.0。

我正在尝试使用此逻辑更新到 1.10,但是当我尝试增加 1.x 中的 x (ver[1] += 1) 时,它会抛出错误。

def replace_string():
    with open(filename) as f:
        found = False
    #for line in fileinput.input(filename, inplace=1):
        for line in f:
            if re.search("CVS Header", line):
                print 'Old Line \n' + line

                ####################################################################################
                #  Below logic:                                                                    #
                #  if length of revision number is 4 characters (e.g. 1.15) then increment by 0.01 #
                #  else if it is 3 characters (e.g. 1.5) then increment by 0.1                     #
                ####################################################################################

                if len(line.split("$Revision: ")[1].split()[0]) == 4:
                    ver = line.split("$Revision: ")[1].split()[0]
                    ver = [int(x) for x in ver.split('.')]
                    ver = '{0[0]}.{0[1]}'.format(ver)
                    ver[1] += 1
                    print ver
                    new_line = str.replace(line, line.split("$Revision: ")[1].split()[0], ver)
                    print new_line

                elif len(line.split("$Revision: ")[1].split()[0]) == 3:
                    ver = line.split("$Revision: ")[1].split()[0]
                    ver = [int(x) for x in ver.split('.')]
                    ver = '{0[0]}.{0[1]}'.format(ver)
                    ver[1] += 1
                    print ver
                    new_line = str.replace(line, line.split("$Revision: ")[1].split()[0], ver)
            ###
                newer_line = str.replace(new_line, line.split("$Author: ")[1].split()[0], username)
                newest_line = str.replace(newer_line, line.split("$Date: ")[1].split()[0], today)
                current_line = str.replace(newest_line, line.split("$Date: ")[1].split()[1], time)
                found = True
                print 'New Line \n' + current_line

    if not found:
        print "No CVS Header exists in %s" % filename  

if __name__ == "__main__":
    #args = parser.parse_args()
    replace_string()

你可以使用:

ver, rev = str(1.9).split('.')
ver + '.' + str(int(rev)+1)  # result: '1.10'

这样,只要输入始终是字符串,您就可以免除对当前数字数量的检查。在我的示例中不是,这就是为什么我将 1.9 转换为字符串,但如果在浮点数上使用它会失败1.10而不是字符串'1.10'。但你不必担心这一点,因为你的输入

line.split("$Revision: ")[1].split()[0]

已经是一个字符串了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 中增加版本号 的相关文章

  • python 中的代表

    我实现了这个简短的示例来尝试演示一个简单的委托模式 我的问题是 这看起来我已经理解了委托吗 class Handler def init self parent None self parent parent def Handle self
  • 如何迭代按值排序的 Python 字典?

    我有一本字典 比如 a 6 b 1 c 2 我想迭代一下by value 不是通过键 换句话说 b 1 c 2 a 6 最直接的方法是什么 sorted dictionary items key lambda x x 1 对于那些讨厌 la
  • Python逻辑运算符优先级[重复]

    这个问题在这里已经有答案了 哪个运算符优先4 gt 5 or 3 lt 4 and 9 gt 8 这会被评估为真还是假 我知道该声明3 gt 4 or 2 lt 3 and 9 gt 10 显然应该评估为 false 但我不太确定 pyth
  • 将数据帧行转换为字典

    我有像下面的示例数据这样的数据帧 我正在尝试将数据帧中的一行转换为类似于下面所需输出的字典 但是当我使用 to dict 时 我得到了索引和列值 有谁知道如何将行转换为像所需输出那样的字典 任何提示都非常感激 Sample data pri
  • 如何创建一个语句来打印以特定单词开头的单词? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何在 python 中打印从特定字母开始的单词 而不使用函数 而是使用方法或循环 1 我有一个字符串 想要打印以 m 开头的单词 S
  • 为什么Python的curses中escape键有延迟?

    In the Python curses module I have observed that there is a roughly 1 second delay between pressing the esc key and getc
  • 切片 Dataframe 时出现 KeyError

    我的代码如下所示 d pd read csv Collector Output csv df pd DataFrame data d dfa df copy dfa dfa rename columns OBJECTID Object ID
  • 按元组分隔符拆分列表

    我有清单 print L I WW am XX newbie YY ZZ You WW are XX cool YY ZZ 我想用分隔符将列表拆分为子列表 ZZ print new L I WW am XX newbie YY ZZ You
  • 首先对列表中最长的项目进行排序

    我正在使用 lambda 来修改排序的行为 sorted list key lambda item item lower len item 对包含元素的列表进行排序A1 A2 A3 A B1 B2 B3 B 结果是A A1 A2 A3 B
  • 在 pytube3 中获取 youtube 视频的标题?

    我正在尝试构建一个应用程序来使用 python 下载 YouTube 视频pytube3 但我无法检索视频的标题 这是我的代码 from pytube import YouTube yt YouTube link print yt titl
  • 如何使用列表作为pandas数据框中的值?

    我有一个数据框 需要列的子集包含具有多个值的条目 下面是一个带有 运行时 列的数据框 其中包含程序在各种条件下的运行时 df condition a runtimes 1 1 5 2 condition b runtimes 0 5 0 7
  • 将名称字符串编码为唯一的数字

    我有一大堆名字 数以百万计 他们每个人都有一个名字 一个可选的中间名和一个姓氏 我需要将这些名称编码为唯一代表这些名称的数字 编码应该是一对一的 即一个名称只能与一个数字相关联 一个数字只能与一个名称相关联 对此进行编码的明智方法是什么 我
  • 使用 NumPy 将非均匀数据从文件读取到数组中

    假设我有一个如下所示的文本文件 33 346 1223 10 23 11 23 12 23 13 23 14 23 15 23 16 24 10 24 11 24 12 24 13 24 14 24 15 24 16 25 14 25 15
  • 使用yield 进行字典理解

    作为一个人为的例子 myset set a b c d mydict item yield join item s for item in myset and list mydict gives as cs bs ds a None b N
  • 如何在 OSX 上安装 numpy 和 scipy?

    我是 Mac 新手 请耐心等待 我现在使用的是雪豹 10 6 4 我想安装numpy和scipy 所以我从他们的官方网站下载了python2 6 numpy和scipy dmg文件 但是 我在导入 numpy 时遇到问题 Library F
  • Tkinter - 浮动窗口 - 调整大小

    灵感来自this https stackoverflow com a 22424245 13629335问题 我想为我的根窗口编写自己的调整大小函数 但我刚刚注意到我的代码显示了一些性能问题 如果你快速调整它的大小 你会发现窗口没有像我希望
  • 您可以将操作直接应用于map/reduce/filter 中的参数吗?

    map and filter通常可以与列表理解互换 但是reduce并不那么容易被交换map and filter 此外 在某些情况下我仍然更喜欢函数语法 但是 当您需要对参数本身进行操作时 我发现自己正在经历语法体操 最终必须编写整个函数
  • 字典和数组作为类变量与实例变量

    这是赚取积分的简单方法 请解释以下内容 class C a b 0 c def init self self x def d self k v self x k v self a k v self b v self c append v d
  • Elastic Beanstalk 中的 enum34 问题

    我正在尝试在 Elastic Beanstalk 中设置 django 环境 当我尝试通过requirements txt 文件安装时 我遇到了python3 6 问题 File opt python run venv bin pip li
  • Python 无法使用套接字绑定我的外部/公共 IP 地址,给出错误但是当使用本地 IP 地址时,错误不会显示

    这是出现主要错误的代码 与我的本地 IP 的绑定将起作用 s bind 192 168 1 4 port 与我的公共 IP 的绑定失败并出现以下错误 s bind 99 99 99 99 port WinError 10049 请求的地址在

随机推荐

  • 如何在Android应用程序安装时创建sqlite数据库?

    我将注册屏幕作为我的第一个屏幕 但在此之前我想创建数据库 是否可以在 Android 中安装时创建数据库 而不是在第一个活动中创建 这是一篇很棒的文章 可以帮助http www reigndesign com blog using your
  • 使用 Solrj 调用 Solr Scheme API

    基于文档https cwiki apache org confluence display solr Schema API https cwiki apache org confluence display solr Schema API
  • H2 数据库中的 Oracle MERGE 语句

    我们开始使用H2内存数据库进行自动化测试 我们在生产和开发环境中使用 Oracle 因此 我们的想法是复制 H2 测试数据库中的表结构 就像我们的 Oracle 开发数据库中的表结构一样 Oracle SQL 语句包括 MERGE 语句并在
  • Paypal支付失败

    为了将 IPN 发布到我的网站 我更改了沙盒帐户中的一些设置 当我尝试在贝宝端购买后 每次都会发生此错误 急流 异常 N6Rapids5Tools13PimpExceptionE 皮条客 RC 3514 Failure log Use of
  • Web Worker 对每个域每个浏览器的最大 http 连接数的影响

    这个问题是一个延伸最大 HTTP 连接数 https stackoverflow com questions 985431 max parallel http connections in a browser Web Worker 会给这个
  • 使用 Google Drive API 下载 csv 格式的电子表格

    如果这是一个显而易见的问题 我很抱歉 我对 API 还很陌生 我正在使用 python 驱动 api 库 并尝试将 google 电子表格下载为 csv 当我使用 files get 时 它生成一个没有 downloadUrl 的文件 并且
  • Linux JAVA 在路径中但权限被拒绝

    我试图在使用 Yocto Linux 的 Intel Edison 上启用 JAVA 问题是提取 zip 后 我能够检查版本 当将其放入路径时 我根本无法访问 java 由于权限 具体来说 我正在尝试遵循这个tutorial https c
  • C++ 智能指针性能

    与裸指针相比 使用智能指针 尤其是 boost shared ptr 在时间和内存方面的成本要高多少 对于游戏 嵌入式系统的性能密集型部分 使用裸指针是否更好 您是否建议对性能密集型组件使用裸指针或智能指针 取消引用智能指针通常是微不足道的
  • 如何防止自定义 UITableViewCells 在取消选择时闪烁白色?

    我有一个自定义 UITableViewCell 它根据所在行更改颜色 TableViewController m void willDisplayCell GSRSongCell cell atIndexPath NSIndexPath i
  • EF6,与 Windows 8.1 上的 VS 2015 相比,在 Windows 10 上的 VS 2015 中刷新大型数据库优先实体模型需要很长时间

    自从我升级到 Windows 10 以来 我的实体模型几乎不可能更新 打开模型设计器需要很长时间 然后右键单击设计器才能弹出上下文菜单以选择 从数据库更新模型 在 VS 2015 中但在 Windows 8 1 上打开相同的模型要快得多 这
  • 根据节点拆分Xml文档

    我的xml文档看起来像 它实际上是谷歌地图的kml文件
  • 在 Heroku 控制台中创建新模型时出现 NoMethodError (nil:NilClass 的未定义方法“名称”)

    我刚刚推送了 Heroku 并尝试通过rails admin 添加模型来进行一些测试 当我这样做时 我得到了一个通用错误页面 我进入日志并注意到这条消息 NoMethodError nil NilClass 的未定义方法 名称 然后我打开
  • 大型下拉菜单悬停时闪烁

    我在网上找到的大型下拉菜单有问题 它非常适合我的目的 但有时表现得很奇怪 并且存在闪烁问题 我找到它的链接在这里 http bootsnipp com snippets featured mega menu slide down on ho
  • 以编程方式重新安装应用程序 apk,无需下载

    Due to 我需要用户重新安装我的应用程序 以便其他应用程序检测到清单权限 这已经让用户感到沮丧 但此外 我找不到从 data app 中存储的 apk 重新安装应用程序的方法 因此我必须在触发之前将相同版本下载到存储卡通常的安装意图 我
  • 实体框架连接字符串utf8

    我想向我的实体框架数据库应用程序添加 utf8 支持 sql server 2008 r2 我想我需要将字符集添加到连接字符串中 这就是我的connectionString的工作原理 当然是匿名的
  • 如何使用log4j创建多个日志文件

    我想创建单独的日志文件 一个用于信息另一个用于调试 我正在使用下面的 log4j property 文件 请建议如何修改不同文件中的二级日志记录 Root logger option log4j rootLogger info file D
  • 我需要做什么才能在我的 xampp (Windows) 上运行 OpenSSL 扩展? :( [复制]

    这个问题在这里已经有答案了 我已经尝试过所有 但不起作用 我确实将 libeay32 dll 和 ssleay32 dll 放在 System32 windows 文件夹中 并在 php ini 上启用了 php openssl dll 扩
  • 在哪里可以找到特定于应用程序的 context.xml 文件?

    我读到了context xml file 在雄猫中 是特定于应用程序的 我已经从我的 netbeans IDE 创建了两个 Web 项目 并使用 Tomcat 作为服务器 但是我无法找到特定于应用程序的项目context xml文件 我只找
  • 在 for 循环中更改 SVG 线的 strokeDashoffset

    我正在尝试制作一条线扩展的动画 我已经在 css 中拥有它 但我需要在 javaScript 中完成它 因为这是我可以获得我需要的路径长度的唯一方法 我想我已经非常接近了 但它不起作用 有任何想法吗 以下是我的代码 正如你所看到的 我得到了
  • Python 中增加版本号

    我正在尝试对 CVS 中的文件进行版本号更新 我最初的逻辑是更新一个浮点数 1 1 gt 1 2 gt 1 3 它工作得很好 直到我到达 1 9 然后它更新到 2 0 我正在尝试使用此逻辑更新到 1 10 但是当我尝试增加 1 x 中的 x