Python - NoneType beim Dateiauslesen

Hallo zusammen,

ich habe mir ein kleine Python Skript erstellt, welches aus mehreren Files einen Wert auslesen soll und diesen aktuell auf der Konsole ausgibt.
Das ganze funktioniert soweit eigentlich auch so wie gewünscht.
Wenn ich das ganze mir Zeilenweise ausgebe werden die Werte korrekt angezeigt.

Wenn ich mir die Ausgabe jedoch aber in einer Zeile ausgeben möchte, um es später z.B. in eine Ausgabedatei strukturiert ausgeben möchte erhalte ich einen Fehler:


Anbei erst mal die Filestruktur:


Die Werte nach welchem ich suche können leider in in den YAML Files in mehreren Arten in den Files auftauchen.
Anbei mal die Möglichkeiten am Beispiel des Wertes CPU aus der resources.yaml:
(Aufgrund der Yaml Struktur sind noch entsprechende Leerzeichen vor dem Wert)

cpu: "1"
cpu: 1000m
cpu: 1

Sprich der Wert kann als normale Zahl enthalten sein, mit Anführungszeichen sowie als Zahl mit Einheit am Ende.

Anbei mal mein Skript wie die Ausgabe funktioniert:


Als Ausgabe erhalte ich die ausgelesenen Werte:


Sobald ich jetzt das ganze aber in einer Zeile haben möchte (siehe aktuell auskomnentiert in Zeile 27) bekomme ich folgenden Fehler:


Könnt Ihr mir bitte helfen wie ich diesen Fehler weg bekomme und die Werte in eine Zeile bekomme ?

Vielen Dank

Gruß
BadFsaadKl

Content-Key: 584011

Url: https://administrator.de/contentid/584011

Ausgedruckt am: 24.01.2022 um 19:01 Uhr

Mitglied: 144705
Lösung 144705 02.07.2020 aktualisiert um 18:05:30 Uhr
Goto Top
Könnt Ihr mir bitte helfen wie ich diesen Fehler weg bekomme und die Werte in eine Zeile bekomme ?
Erstens gibst du aus deiner Funktion search_in_file überhaupt keine Werte mit return zurück sondern gibst diese nur auf der Konsole (print) aus, deswegen auch die einzig logische Fehlermeldung mit "NoneType" und das das nicht mit den Semikolons zusammengefügt werden kann, weil du eben nichts aus der Funktion zurück gibst.

Gib also aus deiner Funktion den String zurück
return newx2

Aber nicht vergessen auch einen leeren String in deiner Funktion zurückzugeben wenn es keine Fundstellen gibt, ansonsten musst du alle Fuktionsaufrufe mit str(AUFRUF) kapseln. By the way gibtet in Python eine schöne Funktion namens string.join(), dann braucht man nicht so lange Semikolon + Orgien veranstalten ;-) face-wink
https://www.w3schools.com/python/ref_string_join.asp
Mitglied: BadFsaadKl
BadFsaadKl 02.07.2020 um 18:20:33 Uhr
Goto Top
Hi latavia,

danke für die schnelle Antwort.

Mit
hatte ich auch schon rumprobiert statt dem print.
Hier bekomme ich aber den gleichen Fehler :-( face-sad

Leere Werte können zum gluck nicht vorkommen da die gesuchten Werte definitiv in den Files vorhanden sind ;-) face-wink.

Wie rufe ich die Werte dann ab wenn ich mittels return newx2 diese aus der Funktion ausgebe ?

Habe leider bisher noch nicht viel mit Funktionen gemacht.
Ist quasi mein erstes Skript wo ich mal eine Funktion versuche ;-) face-wink

wenn ich jetzt das Print gegen return austausche, werden mir die ausgelesenen Wert gar nicht mehr angezeigt :-( face-sad


Mitglied: BadFsaadKl
BadFsaadKl 03.07.2020 um 07:25:31 Uhr
Goto Top
Der Aufruf klappt nun.
Ich musste im unteren Bereich einfach noch mal den Funktionsaufruf für die Rückgabe als Variable definieren.
Dann klappt es auch mit dem Return in der Funktion ;-) face-wink

Mitglied: 144705
Lösung 144705 03.07.2020 aktualisiert um 08:33:42 Uhr
Goto Top
Ich musste im unteren Bereich einfach noch mal den Funktionsaufruf für die Rückgabe als Variable definieren.
Nein ist nicht nötig, guckst du, du musst nur immer einen String zurückgeben(auch wenn er leer wäre), auch wenn die Bedingung in der Function nicht zutrifft, und das tust du bei dir eben nicht.
https://tio.run/##VYwxDoMwDEX3nMLyFKsjG6h7lx4igiCQUgc5DoLTh6AywF/ff2/ZdY ...
Heiß diskutierte Beiträge
question
Ist diese Hardware sinnvoll für privaten Haushalt?stonevVor 1 TagFrageRouter & Routing5 Kommentare

Hallo erstmal :) Meine alte Fritzbox 7490 spinnt seit gestern. Ich gehe von Alterschwäche aus, es wird also Ersatz fällig. Zufrieden war ich mit ihr ...

question
LTO-5 Bänder Löschen geht nichtkreuzbergerVor 1 TagFrageBackup23 Kommentare

Hallo ihr Helden, ich hab da ein blödes Problem: Ich habe einen Stapel gebrauchte LTO-5-Bänder bekommen, die soweit völlig i. O. sind. Mit welchem Programm ...

question
Teilenummer für weiße Esprimo Mini-PC?LochkartenstanzerVor 1 TagFrageHardware21 Kommentare

Moin, Ich habe eine eigenwillige Kundin, die einen weißen Fujitsu Esprimo Mini-PC haben will. Und der Kundin ist, wie sollte es anders sein, die Farbe ...

question
Ein Smartphone für privat und geschäftliche NutzungNebellichtVor 1 TagFragePeripheriegeräte5 Kommentare

Hallo, für die Firma werden aktuell Smartphone(s) gesucht, die da eine Dual Sim ermöglichen und zusätzlich trennende Sicherheit, d.h. ein Trennen von privaten Daten und ...

question
Tipp für Firewall mit mehreren DHCP-Instanzen für VLAN gesucht gelöst Holly484Vor 22 StundenFrageFirewall5 Kommentare

Hallo zusammen, hatte in einer Gemeinschaftspraxis bisher tolle Erfahrungen mit Netgear über die letzten vielen Jahre gesammelt. Jetzt ist Netgear aus dem Firewall-Business ausgestiegen. Bisher ...

question
Suche nach "Beschreibung"ThabeusVor 1 TagFrageVmware11 Kommentare

Moin, ich stehe gerade auf dem Schlauch bei der Suche nach einer Anleitung. Vielleicht kann mir jemand helfen die "Begrifflichkeit" zu finden. In meinem Netzwerk ...

question
User verschickt mit kryptischer Outlook.com Adresse aus on-prem Exchange 2016LauneBaerVor 1 TagFrageExchange Server10 Kommentare

Servus in die Runde, ich habe ein für mich nicht nachvollziehbares Problem bei einem User, das heute zum 2ten mal aufgetreten ist. Und zwar verschickte ...

question
Windows Admin Center - Zugriff verweigertsaschakpVor 1 TagFrageWindows Update3 Kommentare

Hallo ich habe das Windows Admin Center Installiert, leider bekomme ich beim öffnen die Meldung: Zugriff verweigert Sie sind leider nicht zum Senden dieser Anforderung ...