Script Output als Var definieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Rainez
User
Beiträge: 1
Registriert: Montag 7. März 2022, 12:33

data = subprocess.check_output(['ipconfig']).decode('utf-8').split('\n')
profiles = [i.split(":")[1][1:-1] for i in data if "IPv4-Adresse" in i]
for i in profiles:
results = subprocess.check_output(['ipconfig']).decode('utf-8').split('\n')
try:
print ("{:<1}| {:<}".format(i, results[0]))
except IndexError:
print ("{:<1}| {:<}".format(i, ""))


target =

Ich bin neu in diesem Programieren :D und stelle mich gerade zu blöd an. Ich versuche den output vom oberen script als Variable "Target" zu definieren. Irgendwelche Vorschläge?
Sirius3
User
Beiträge: 18279
Registriert: Sonntag 21. Oktober 2012, 17:20

Was möchtest Du eigentlich machen? Was genau soll in `target` stehen?

Zum Code:
Statt nachträglich zu decodieren, gib gleich das encoding beim Aufruf von check_output richtig an. Am besten mit text=True, dann wird das richtige Encoding automatisch gewählt. Statt split ist splitlines das richtige.
`i` ist ein schlechter Variablenname für eine Zeile.
`profiles` ist ein schlechter Name für ip-Adressen. Warum schneidest Du die letzte Ziffer der Adressen ab?
`i` ist dann ein schlechter Name für eine IP-Adresse.
Warum rufst Du dann nochmal `ipconfig` auf? Und was denkst Du steht dort dann immer in der ersten Zeile?

Und zum Schluß:
statt selbst irgendwelchen Programmoutput zu parsen, benutze psutil.net_if_addrs()
Antworten