学习Python:在fi中发现并增加价值

2024-05-20 08:46:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我想找到最后一个值(即lo:)并在其上附加一个值。 也就是说。 我想找到lo:3,在本例中是我的最后一个值,并附加一个lo:4

文件:

ifconfig lo:1
 address x.x.x.x
 netmask x.x.x.x
 gateway x.x.x.x

ifconfig lo:2
 address x.x.x.x
 netmask x.x.x.x
 gateway x.x.x.x

ifconfig lo:3
 address x.x.x.x
 netmask x.x.x.x
 gateway x.x.x.x

最好的办法是什么?拆分或循环+Readline with check。在


Tags: 文件loreadlineaddresscheckwithgatewaynetmask
2条回答

有很多方法可以做到这一点。其中之一涉及使用正则表达式,例如:

import re
print max(map(int, re.findall('ifconfig[ \t]+lo:(\d+)', open('f.txt').read(), re.M)))

弄清楚它是如何工作的就剩下一个练习了。在

在不假设文件结构过多的情况下,必须解析文件并跟踪每一个“ifconfig lo:”行,例如更新正在运行的最大值。在这种情况下:

max_value_observed  == 3 # at the end of this step

一旦你看到了所有这些,你就会知道最大值,并能够计算下一个值:

^{pr2}$

现在可以将数据追加到文件中了。 显然,如果文件有更多的预先知道的结构,它就更容易(例如,您知道文件是排序的:您不需要计算最大值,但它只需找到最后一个值就足够了)。在

相关问题 更多 >