Zeile aus TXT Datei

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    sich schon x mal besprochen aber trotzdem komm ich nicht klar.


    Ich habe ein TXT Datei da stehen mehrere Zeilen drin, so in etwa.

    12345

    65443

    23445

    jetzt lese ich die Datei ein und möchte nur die Zweite Zeile nutzen wie bekomme ich das hin?

    so währe mein Ansatz...

    Code
    with open("test.txt", "r") as Daten:
                Line1 = Daten.readline(5)
                Line2 = Daten.readline(???)
                Line3 = Daten.readline(???)
                print (Line1)
                print (Line2)
                Print (Line3)
  • ich möchte die Werte aus einer TXT Datei lesen sind 3 untereinander stehende Werte die sich durch ein anderes Programm immer wieder ändern.

    diese möchte ich dann jeden für sich in einem tkinter fenster anzeigen...

    wenn ich es so mache wie die funktioniert es nur jeweils mit einer Zeile oder ich muss immer wieder die txt neu öffnen um die Nächte Zeile zu lesen, was mich zwar zum Ziel bringt aber nicht schön ist

  • Aber bitte nicht so:

    Python
    with open("file.txt", "r") as f:
        lines = f.read().splitlines()
    
    foo = lines[0]
    bar = lines[1]
    baz = lines[2]

    Sondern so:

    Python
    with open("file.txt", "r") as f:
        lines = f.read().splitlines()
    
    foo, bar, baz = lines

    bzw so, wenn du nicht zu 100% sicher bist, dass es drei Zeilen sind, sondern ggf auch mehr:

    Python
    with open("file.txt", "r") as f:
        lines = f.read().splitlines()
    
    foo, bar, baz, *_ = lines
  • Also Danke noch mal für die Hilfe und Funktioniert auch und Übergabe ein tkinter Label usw. habe ich auch so weit hinbekommen.

    Jetzt stehe ich aber vor einem weiteren Problem.

    Also ich löse eine Funktion aus mit der die TXT Datei gelesen wird, so wie du es mir gezeigt hast.

    jetzt möchte ich gern mit einem wert, ich nehme mal "bar" eine CSV Datei in der ersten Spalte nach "bar" durchsuchen und bei gefundenen Wert den in gleicher Zeile aber 2. Spalte einer Variablen zuordnen.

    so weit ist mein Ansatz

  • Sieh Dir mal "mapfile" der bash an.

    Ein Beispiel findet sich hier: Monitoring BME280 (Temperatur, Luftdruck, Luftfeuchtigkeit, Taupunkt ...)

    Abschnitt: Das Bash-Script für die Option "file"

    Eleganter geht es kaum noch,

    MfG

    Jürgen

  • habe ich versucht bekomme aber die Ausgabe "not found"?

  • Hmm probiere hin und her komme aber nicht zum erfolg :(

    Kurz noch mal zur Erklärung, Also ich lese aus der TXT eine 6 Stellige Zahl aus und nenne sie "foo"

    diese 6 Stellige Zahlt steht irgendwo in der ersten Spalte der .csv Datei. Diese soll gesucht werden und dann eine 4 Stellige Zahl aus der 2. Spalte ausgelesen werden und z.B. "picture" genannt werden. diesen wert soll dann die Dateiendung .jpg hinzugefügt werden und dann halt ein canvas mit einem jpg Bild wessen Name aus der 4 Stelligen Zahl besteht geladen wird.

    Das Canvas habe ich schon erstellt.

    Jürgen

    Damit komme ich noch nicht klar? Verstehe es einfach nicht

  • Jürgen

    Damit komme ich noch nicht klar? Verstehe es einfach nicht

    Dein test.txt hat folgenden Inhalt:

    Code
    12345
    65443
    23445

    Das Bash-Script "test.sh" besteht aus folgenden Zeilen:

    Dann rufst Du es auf:

    bash test.sh

    Ergebnis:

    12345
    65443
    23445

    Ganz einfach, oder? Jetzt kannst Du Dir die Zeile aussuchen, die Du haben willst.

    MfG

    Jürgen

  • ich möchte die Werte aus einer TXT Datei lesen sind 3 untereinander stehende Werte die sich durch ein anderes Programm immer wieder ändern.

    Hallo Streifenhase,

    wenn es irgendwie technisch möglich ist, würde ich auf solche File Schnittstellen möglichst verzichten - irgendwann versucht das eine Programm zu lesen, während das andere gerade schreibt. Aber solange keine Menschenleben dran hängen, ist's natürlich halb so schlimm...

  • frimp

    leider geht es in meinen Augen nur so, aber Danke für den Tip!

    Tell

    foo wird nur gefunden wenn ich nur eine Spalte in der csv habe, bringt aber bei der Ausgabe den Fehler

    "IndexError: list index out of range"

    sobald ich einen Wert in Spalte 2 bringe findet er foo nicht in der csv.

    Mal dumm gesagt sieht es so aus als ob er nicht Zeilen und Spalten getrennt ausließt sondern nur Zeilen. oder?

    csv ist mit Excel erstellt, vielleicht hilft das weiter

  • leider geht es in meinen Augen nur so

    Dann würde ich Dir vorschlagen, noch weitere Augenpaare zu Rate zu ziehen – z.B. hier im Forum. Wenn Du uns Dein Projekt schildern würdest, statt technische Detailfragen zu stellen, könnten wir evt. andere Ansätze vorschlagen und Dir damit effektiver helfen.

  • jetzt funktionier es nach Stunden Probieren!

  • CSV heisst naemlich COMMA SEPARATED VALUES.

    stimmt, allerdings ist das mit Excel (mit dem wird ja das CSV File generiert) so eine Sache. Da hängt es nämlich von der Windows Konfiguration ab. Auf einem US System ist es wirklich ein "," und auf einem deutschen z.B. ein ";" (der sog. List Seperator findet man, soweit ich mich erinnern kann, irgendwo dort wo man die Datumsformate, Dezimaltrennzeichen usw. definiert")

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!