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