2010-01-07 4 views
0

make 파일에서 버전 번호를 읽는 코드가 있습니다.VERSION ID를 1 씩 증가시키고 .mk 파일에 쓰십시오.

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 파일에 새 버전 번호를 쓸 수있는 방법이 있습니까? 내가 쓰기와 같은 문을 시도

감사합니다() 대신 읽기()하지만 난 목록을 쓸 수 없다는 오류를 얻고있다. 또한 문자열로 쓰려고했지만 잘못된 파일 설명자 메시지가 나타납니다.

s = str(VERSION_ID) 

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

나는 이것이 쓰레기라는 것을 알고있다. 온라인 문서에서 무엇을 해야할지 모르겠다.

나는 피클 모듈을 사용하지 않으려 고 노력했다. 어쩌면 나는 절인 목록을 쓰고 대신에 그것을 뺄 수있을 것이다. 아니면 전 전체 라인을 쓸 수 있다고 생각했습니다.

다른 방법을 시도했습니다. 목록을 문자열로 입력하려고했습니다. 나는 이것을 시도했지만 그것이 효과가 있을지 확신하지 못한다. 이 같은

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

아 ....이를 "pleaseDoMyWorkForMe.com"를 보냅니다. 그들은 이런 종류의 질문을 좋아합니다. –

+0

여러 가지 방법이 있습니다. 어떤 특정 문제가 있습니까? 그게 너에게 해본 적이 없는게 뭐야? –

+0

@ S.Lott, 나는 내 일을 끝내려고하지 않고있다. 나는 해답을 직접 읽으려고 노력했지만, 찾을 수는 없다. 나는 특정 수준에서 파이썬과 프로그래밍을 배우기 시작했다. 파이썬으로 프로그래밍하는 법을 배울 때 나는 많은 어리석은 질문을하지 않을 것이다. 말하기에 건설적인 것이 없다면 전혀 언급하지 마십시오. – chrissygormley

답변

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() 
+0

천재, 완벽하게 작동하는 고마워, 내가 무엇을했는지 모르겠다. – chrissygormley

관련 문제