0

我是 python 的初学者,我被困在给我的任务中。我有一个名为 file.h 的文件,它有一个特定的信息和一个介于类似这样的东西之间的数字。

Working copy:C:/tmp
Repository root:svn:/localhost
VERSION_REV 8797
Schedule:normal
Date:13/12/2010

我需要编写一个 python 代码,以便每当我运行它时,它都应该搜索数字 8797 并将其替换为存储在我的变量中的数字,即 x=8798。我尝试如下,但没有成功。

fout = open("path to\file\file.h","r+")
for line in open("path to\file\file.h"):
    line = line.replace("VERSION_REV %i","x")
    fout.write(line)
fout.close()

对不起,我忘了说我使用的是windows7系统。

4

3 回答 3

0

试试这个...

import re

data = open("path to\file\file.h","r+").read()
re.sub(r'VERSION_REV [0-9]+', 'VERSION_REV ' + newstr, data)
open("path to\file\file.h","w").write(data)

无需重新

fout = open("path to\file\file.h","r+")
for line in open("path to\file\file.h"):
    if "VERSION_REV" in line:
        line = "VERSION_REV " + newstr
    fout.write(line)
fout.close()
于 2013-02-02T10:13:58.713 回答
0

您可以使用re.sub

import re
.....
line = re.sub(r'(?<=VERSION_REV )\d+', x, line)
于 2013-02-02T10:19:00.087 回答
0

查看下面的代码..它确实对我有用。

fout=open("c:\path to file\file.h", "r+")
    for line in open("c:\path to file\file.h"):
        if "VERSION_REV" in line:
            line = "VERSION_REV " + "" + x + '\n' #where 'x' has new version _rev 8798
        fout.write(line)
    fout.close()
于 2013-03-01T11:13:00.757 回答