Seite 1 von 1
Dateien aus erstellter Liste auswählen und weiterverarbeiten
Verfasst: Mittwoch 5. August 2020, 10:44
von Zepp
Hallo,
als Python-Neuling bin ich gerade an dem Versuch, Messdaten automatisch auszuwerten. Ich möchte dazu verschiedene Textdateien aus einer automatische erstellten Liste, erstellt mit folgendem Code:
Code: Alles auswählen
import os
FOLDER_PATH = r'C:\\Users\\Zepp\\Desktop\\Test'
def listDir(dir):
fileNames = os.listdir(dir)
for fileName in fileNames:
print(fileName)
if __name__ == '__main__':
listDir(FOLDER_PATH)
nacheinander einlesen und die Inhalte mit folgendem Code plotten:
Code: Alles auswählen
import numpy as np
import matplotlib.pyplot as plt
messdaten = np.loadtxt('DATEI AUS LISTE',delimiter='\t')
Freq = messdaten[:,1]
S11 = messdaten[:,2]
S12 = messdaten[:,4]
S21 = messdaten[:,6]
S22 = messdaten[:,8]
plt.plot(Freq,S11)
plt.plot(Freq,S12)
plt.plot(Freq,S21)
plt.plot(Freq,S22)
plt.show()
Ich bin gerade sehr ratlos und würde mich über etwas Unterstützung freuen

Re: Dateien aus erstellter Liste auswählen und weiterverarbeiten
Verfasst: Mittwoch 5. August 2020, 11:38
von __blackjack__
@Zepp: Namen werden in Python klein_mit_unterstrichen geschrieben. Ausnahmen sind Konstanten (KOMPLETT_GROSS) und Klassen (MixedCase). Und verwende keine kryptischen Abkürzungen. Wenn man `frequency` meint, sollte man nicht nur `freq` schreiben. Und `S11`, `S12` & Co sind komplett unverständlich. Zudem ist der Code dort sehr regelmässig und kann durch eine Schleife ersetzt werden.
Statt der `os`/`os.path`-Funktionen sollte neuer Code Pfadoperationen mit dem `pathlib`-Modul machen. Man sollte da auch ein bisschen filtern, denn nicht selten liegen in Verzeichnissen auch noch andere Dateien herum als die, die man verarbeiten möchte. Temporäre Dateien wenn man dort Dateien öffnet und bearbeitet, Einstellungsdateien von Dateimanagern, Thumbnaildateien von Dateibetrachtern, Unterverzeichnisse von Versionsverwaltungen, …
Du willst eine Funktion schreiben, die einen Pfad zu einer Datei bekommt, und die dann plottet. Die kannst Du dann mit jedem Dateipfad den Du plotten möchtest aufrufen.
Re: Dateien aus erstellter Liste auswählen und weiterverarbeiten
Verfasst: Mittwoch 5. August 2020, 12:33
von Zepp
als Python-Neuling bin ich gerade an dem Versuch, Messdaten automatisch auszuwerten
...danke... aber wirklich helfen tut mir deine Antwort jetzt nicht. S11, ... sind gemessene Parameter und sollen genau so auf den Achsen stehen. Deshalb heißen die so. Ich versuch deine Tipps aber trotzdem mal umzusetzen, das mit der Schleife ist schon einmal ne gute Idee. Soweit ich das bisher habe funktioniert der Code aber genau wie er soll. Es geht mir tatsächlich nur darum, dass die Dateien aus der Liste automatisch ausgelesen werden. In den Ordner kommen dann später nur die Dateien rein die gebraucht werden. Wichtig ist, dass das ganze am Schluss funktioniert. Ich hab leider keine Zeit mich tiefer in die Materie einzuarbeiten und Feinheiten zu lernen.
Re: Dateien aus erstellter Liste auswählen und weiterverarbeiten
Verfasst: Mittwoch 5. August 2020, 13:06
von __blackjack__
@Zepp: Die Antwort sollte aber helfen. Wo ist denn das Problem bei der Umsetzung?
Der Variablenname `S11` steht nirgends auf irgendeiner Achse. Die Werte dahinter werden geplottet, dabei ist aber egal wie der Name in Python lautet. Das ist aber für menschliche Leser nicht egal, denn so einer möchte ja wissen was die Werte *bedeuten* und nicht irgendeinen kryptischen Namen mit dem er nix anfangen kann. Und die Namen sollten sich an die Namenskonventionen von Python halten.
Letztlich braucht man aber gar keine Namen, denn der Code ist ja sehr ”regelmässig”, den kann man mit einer Schleife ausdrücken.
Wenn Du Python verwenden willst/musst, dann musst Du Python lernen. Also mindestens mal die ganzen Grundlagen wie Schleifen, bedingte Ausführung, und Funktionen. Das sind keine Feinheiten, sondern die Werkzeuge die Du brauchst.
Und gewissen ”Feinheiten” a.k.a. Konventionen solltest Du Dir trotzdem angewöhnen, denn die helfen einheitlicheren, und damit leichter les- und verstehbaren Code zu schreiben, und Fehler zu vermeiden. Das sind in der Regel auch keine wirklich komplizierten Sachen und einfach umzusetzen. Wie beispielsweise die Namenskonventionen, oder das man Importe an den Anfang des Moduls schreibt, oder das auf Modulebene nur Code stehen sollte der Konstanten, Funktionen, und Klassen definiert, und das man keine globalen Variablen verwendet.