Python 文件操作和查找单词并替换

Python 文件操作和查找单词并替换,python,file,replace,Python,File,Replace,我有这样的文件 hostname ser1-xyz myuser name passwd secret group 1234 hostname ser2-xyz myuser name passwd secret group 2345 我需要找到名为“ser1 xyz”的主机的第一行外观,并将其修改为 “ser1”并将组值增加1 最后一个文件如下所示: hostname ser1 myuser name passwd secret group 123

我有这样的文件

hostname ser1-xyz
myuser   name
passwd   secret
group    1234

hostname ser2-xyz
myuser   name
passwd   secret
group    2345
我需要找到名为“ser1 xyz”的主机的第一行外观,并将其修改为 “ser1”并将组值增加1

最后一个文件如下所示:

hostname ser1
myuser   name
passwd   secret
group    1235

hostname ser2-xyz
myuser   name
passwd   secret
group    2345
目前我正在执行以下代码,可以将“ser1 xyz”修改为“ser1”

但如何增加集团价值?

单向

import fileinput
f=0
for line in fileinput.input("file",inplace=0):
    if "hostname" in line and "ser1-xyz" in line:
       line=line.replace("ser1-xyz","ser1")
       f=1
    if f and "group" in line:
       a=line.rstrip().split(" ")
       a[-1]=str(int(a[-1])+1)
       line=' '.join(a)
       f=0
    print line.rstrip()
输出

$ ./python.py
hostname ser1
myuser   name
passwd   secret
group    1235

hostname ser2-xyz
myuser   name
passwd   secret
group    2345

inplace=0
更改为
inplace=1
以进行就地编辑。

您可以更改文件的格式吗?这似乎提供了与/etc/passwd文件类似的功能。在passwd文件中,每条记录位于一行上,字段以冒号分隔。这将使它更易于操作。不,我不能更改文件格式。我就是这样收到这个文件的。谢谢你的查询,下面的代码对我有用。
$ ./python.py
hostname ser1
myuser   name
passwd   secret
group    1235

hostname ser2-xyz
myuser   name
passwd   secret
group    2345