如果发现关键字打印行其他打印python
问题描述:
我想写一个代码,我可以从不同的文件中搜索某些关键字;如果找到打印行和主机名;否则找不到打印“考试合格”和主机名如果发现关键字打印行其他打印python
Hostsfile.txt
router1
router2
router1.txt
not ready is ready
reset me if required
blah
blahhh blahh
router2.txt
blah
blahhh blahh
代码
hosts = open((hostsfile) , "r")
keys = ['Not Ready','RESET']
hosts = [hosts for hosts in (hosts.strip() for hosts in open(hostsfile)) if hosts]
for host2 in hosts:
f = [f for f in (f.strip() for f in open("router1.txt")) if f]
for line in f:
for keywords in keys:
if keywords in line:
print (line)
file2.write (line)
elif:
file2.write("Test Passed")
它返回正确的搜索结果,但对于所有线路它亘古不变的查找关键字打印“考试合格”,输出I在找的是
router 1
not ready is ready
reset me if required
router 2
test passed
答
我觉得这是你在找什么
它会只有打印通过后才能通过一次
hosts = open((hostsfile) , "r")
keys = ['Not Ready','RESET']
hosts = [hosts for hosts in (hosts.strip() for hosts in open(hostsfile)) if hosts]
for host2 in hosts:
f = [f for f in (f.strip() for f in open("router1.txt")) if f]
testpassed = True
for line in f:
for keywords in keys:
if keywords in line:
print (line)
file2.write (line)
testpassed = False
if testpassed:
file2.write("Test Passed")
只是使它成为字符串;只是作为一个例子写的;所以请原谅这些错误;只需要找到一个可以执行的逻辑 – Saadi381