将VERSION ID增加1并写入.mk文件

时间:2010-01-07 12:23:08

标签: python

我有代码从make文件中读取版本号。

VERSION_ID=map(int,re.match("VERSION_ID\s*=\s*(\S+)",open("version.mk").read()).group(1).split("."))

此代码采用VERSION_ID = 0.0.2并将其存储为[0,0,2]。

有没有办法可以将这个数字增加一个,然后将新的版本号写入带有变量VERSION_ID的version.mk文件中。

由于

我用write()而不是read()尝试了相同的语句但是我收到一条错误,说我无法写一个列表。我也尝试将其写为字符串,但收到错误的文件描述符消息。

s = str(VERSION_ID)

VERSION_ID=map(int,re.search("VERSION_ID\s*=\s*(\S+)",open("version.mk").write(s)).group(1).split("."))

我知道这是垃圾,我似乎无法在网上的文档中找到该做什么。

我也试过泡菜模块无济于事。也许我可以写一个腌渍清单,然后取消它。或者我以为我可以完全写完整行。

我尝试过anther方法,我试图让列表作为字符串输入。我试过这个,但我不确定它是否会起作用。

for x in VERSION_ID:
    "VERSION_ID={0}.{1}.{2}.format(x)

1 个答案:

答案 0 :(得分:2)

perhpas这样的东西(你也应该检查错误和那个)

#! /usr/bin/python

import re

fn = "version.mk"
omk = open(fn).readlines()
nmk = open(fn, "w")
r = re.compile(r'(VERSION_ID\s*=\s*)(\S+)')

for l in omk:
    m1 = r.match(l)
    if m1:
        VERSION_ID=map(int,m1.group(2).split("."))
        VERSION_ID[2]+=1 # increment version
        l = r.sub(r'\g<1>' + '.'.join(['%s' % (v) for v in VERSION_ID]), l)
    nmk.write(l)
nmk.close()