我正在写一个简单的文件,其中包含IP地址的统计信息
我使用以下代码:
line = str('%s %12g %12g %12g' %(IP, STAT1, STAT2, THSD))
with open(ficresul, 'a+') as fico:
if not any(value == x.rstrip('\r\n') for x in fico):
fico.write(value + '\n' )
fico.close()
输出是这样的:
192.168.0.10 15.8121 15.4317 18
192.168.0.20 18.625 12.5085 18
192.168.0.24 20.8323 23.252 18
192.168.0.17 17.6208 15.9218 18
它适用于新的IP地址。但是如果ip地址已经在文件中,我想更新统计信息,而不是将其写入新行
怎样才能做到呢
最简单的方法是读取整个文件,在内存中更新它,然后将整个文件写出来(如果有更改)。只有在不更改任何行的长度的情况下,尝试就地更新行才有效,而且可能更容易出错
将内容存储在内存中时,使用
OrderedDict
按要查找的键存储内容OrderedDict
将有助于避免对行的顺序进行虚假更改,这可能很好。否则,您可以使用常规的dict
相关问题 更多 >
编程相关推荐