2016-07-07 15 views
0

私は別のファイルから特定のキーワードを検索できるコードを書こうとしています。見つかった場合は印刷行とホスト名。それは正しい検索結果を返しますが、それは、キーワードプリント「テスト合格」を見つけるdoesnotすべての行のためにプリント「テスト合格」とホスト名見つかった場合はキーワードprint lineその他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 
+0

ちょうどそれを文字列にしました。例として書いただけです。そのようなエラーのいずれかをご容赦ください。実装できるロジックを見つける必要があります – Saadi381

答えて

2

です渡された場合に1回だけ印刷が渡されます

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") 
+0

は機能しません。その印刷テストはすべてのホスト結果の後に合格しました.. – Saadi381

+0

@ Saadi381申し訳ありませんが、コードにtestpassed = Falseを追加することを忘れてしまいました。今すぐコードを編集しました。 – Hani

+0

素晴らしい...魅力的な – Saadi381

関連する問題