2016-11-30 6 views
0

Das Ziel meines Skripts ist es, das Ergebnis von netstart -a in eine Datei namens currserservices.txt zu drucken und dann Dienste zu finden, die die Wörter Netzwerk oder Diagnose enthalten. Ich habe die Schleife erstellt, um alle gestarteten Dienste aufzulisten, verstehe aber nicht ganz, wie die Funktion find() innerhalb der Schleife zum Ausdrucken und Dienste mit Netzwerk- oder Diagnosefunktionen verwendet wird.Verwenden von find() innerhalb einer Schleife

import os 
my_command = "net start >I:\\temp\\mypythonfiles\\currservices.txt" 
os.system(my_command) 
value = "Network Diagnostic" 
my_path = "I:\\temp\\mypythonfiles\\currservices.txt" 
my_handle = open(my_path, "r") 
for line_of_text in my_handle: 
    print (line_of_text) 
    find_val = value.find("Network ") 
    print(find_val) 
    my_handle.close() 
  1. das os-Modul Verwenden Sie "net start", während Umleitung in eine Datei namens c auszuführen: \ temp \ mypythonfiles \ currservices.txt
  2. Öffnen Sie die neu erstellte Datei zum Lesen
  3. erstellen Schleife, um jede Zeile aus der Datei zu lesen; innerhalb der Schleife: * jede Zeile überprüfen Sie die find() Methode unter Verwendung aller der gestarteten Dienste auf die folgenden Zusammenhang zur Liste: Netzwerk, Diagnose * Wenn gefunden, drucken die Dienstnamen

Antwort

1

Zuerst habe ich nicht denken Sie in eine Datei schreiben müssen, verwenden Sie subprocess.check_output statt:

import subprocess 
# create and execute a subprocess and write its output into output (string) 
output = subprocess.check_output(["net", "start"]) 

Dann den Trick ein regulärer Ausdruck tun würde, ich bin sicher:

import re 
regex = re.compile("Network|Diagnostic") 
# split output (a raw multiline text) so you can iterate over lines 
for p in output.splitlines(): 
    # test regex over current line 
    if regex.match(p): 
     print(p) 
+0

Zustimmen. Wenn dies eine Hausaufgabenfrage ist, sollten Sie nicht gebeten worden sein, find() zu verwenden, das ist unpraktisch. Verwenden Sie stattdessen eine Regex –

Verwandte Themen