我有一个列表,我需要检查这个列表的所有元素是否都在.cfg文件中,如果在文件中找不到这些元素之一,就需要在file_diff.html文件中写入缺少的元素并运行发送者()函数。如果已找到列表中的所有项,则运行main()函数。我这样实现了它,但是只检查了第一个元素(V)。但是elif也被处理,就好像文件中没有列表中的任何内容一样。
def validator():
v = ['ip arp inspection',
f'ip arp inspection vlan {l[2]}',
'ip dhcp snooping',
f'ip dhcp snooping vlan {l[2]}',
'ip dhcp snooping information option'
]
with open(f'/home/tftp/cfg/{today}/all/edgecore/{l[0]}.cfg', 'r') as val:
for line in val:
if all(word in line for word in v):
main()
elif not any(word in line for word in v):
with open('file_diff.html', 'w') as noname:
title = f"The configuration on switch {l[0]} do not valid"
noname.write(title)
sender()发布于 2022-09-08 13:35:15
我需要检查这个列表中的所有元素是否都在.cfg文件中
在val中的行:如果所有(逐字表示v):.
您正在检查文件的行是否包含字符串,而不是整个文件。针对这个问题,建议使用val.read():
if all(word in val.read() for word in v): ...如果问题不在此,请添加错误代码和其中的问题部分。
https://stackoverflow.com/questions/73649668
复制相似问题