Wie kann ich in print() mit zusammengesetzten Variablen auf eine Variabel zugrifen?

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

    Ich habe:

    Code
    aktuellenummer = 1

    Ich habe einen befehl print() und möchte damit den Inhalt der Variable "datei1" ausgeben, wenn der Inhalt von aktuellenummer 2 ist, möchte ich den Inhalt von "datei2" ausgegben.

    Hat jemand eine Idee wie Ich es machen könnte?:conf:

    Computerjo

  • Wie kann ich in print() mit zusammengesetzten Variablen auf eine Variabel zugrifen?? Schau mal ob du hier fündig wirst!

  • Entschuldigung, mit datei meine ich nur ein Variablennamen, keine reale Datei auf der Festplatte

  • Ich bekomme es einfach nicht hin:wallbash::wallbash::wallbash::wallbash::wallbash::wallbash:!!!!!

    Kann mir jemand vielleicht den zu mir passenden Code über den Menüpunkt "Code" schreiben?

    • Offizieller Beitrag

    Meinst Du so?

    Python
    aktuellenummer = 1
    
    ausgabe = "datei{0}".format(aktuellenummer)

    oder neuer

    Python
    aktuellenummer = 1
    
    ausgabe = f'datei{aktuellenummer}'

    :conf:

    //Edit: Fehler behoben. Nochmals Sorry!

  • Meinst Du so?

    Python
    aktuellenummer = 1
    
    ausgabe = "datei{0}.format(aktuellenummer)"

    oder neuer

    Python
    aktuellenummer = 1
    
    ausgabe = f'datei{aktuellenummer}'

    :conf:

    Ja so meinte ich es. Vielen Dank für deine Antwort.

    Allerdings kommt bei mir wenn ich:

    Python
    ausgabe = "datei{0}.format(aktuellenummer)"
        
    
    print(ausgabe)

    eingebe

    das:

    Code
    datei{0}.format(aktuellenummer)

    Was habe ich falsch gemacht??

  • Hier mein Programm:

  • Hallo,

    Ich habe:

    Code
    aktuellenummer = 1

    Ich habe einen befehl print() und möchte damit den Inhalt der Variable "datei1" ausgeben, wenn der Inhalt von aktuellenummer 2 ist, möchte ich den Inhalt von "datei2" ausgegben.

    Hat jemand eine Idee wie Ich es machen könnte?:conf:

    Computerjo

    Ausgehend vom Eröffnungspost:

    Python
    aktuellenummer = 1
    
    # Der Weg bei Python Version <3.6 
    print("Meine aktuelle Nummer lautet {} / hier kann noch mehr stehen".format(aktuellenummer))
    
    # ab Python 3.6 würd ich das empfehlen
    print(f"Meine aktuelle Nummer lautet {aktuellenummer} / hier kann noch mehr stehen")
  • > Was habe ich falsch gemacht??

    Nix, die Zeile muesste so aussehen:

    Code
    ausgabe = "datei{0}".format(aktuellenummer)

    Ich habe jetzt:

    soweit so gut, aber ich erhalte als Ausgabe immer noch "datei1", nicht den Inhalt der Variable "datei1"


    Hier meine Ausgabe (123, test, huhu sind Testverzeichnisse, was ich eigentlich will: den Inhalt von "datei1", also 123 ) :

    Code
    123
    huhu
    test
    datei1
  • Warum nicht einfacher, wie in der Dokumentation zu os beschrieben?

    Code
    os.listdir(path='/media/pi/Auto_Daten/Programme')

    Ein Beispiel.

    Code
    import os
    
    #dir_list = os.listdir(path='/media/pi/Auto_Daten/Programme')
    dir_list = os.listdir(path='/home/pi')
    print(dir_list)

    Glaube ersetzt kein Wissen

    3 Mal editiert, zuletzt von bombom (22. Dezember 2019 um 10:10) aus folgendem Grund: Beispiel hinzu

  • Hallo,

    du kannst Variablennamen nicht so ohne weiteres dynamisch zusammensetzen. Wenn du der Meinung bist, dass das nötig ist, hast du in der Regel einen Fehler im Programmentwurf bzw. willst wahrscheinlich eine andere Datenstruktur als eine Variable, die an einen String gebunden ist, nutzen.

    Oder, wenn es wirklich nur zwei Variablen sind, eine if-Abfrage.

    Deinen Code verstehe ich nicht - was hast du vor? Einfach nur den Inhalt eine Datei ausgeben?

    `os.system` ist veraltet, dass steht auch wörtlich in der Python Doku. Stand der Dinge ist das `subprocess` Modul. Bzw. in deinem Fall entweder die passenden Klassen / Methoden aus dem os-Modul oder - besser weil aktueller Stander der Ding - das `pathlib` Modul.

    Gruß, noisefloor

  • Deinen Code verstehe ich nicht - was hast du vor? Einfach nur den Inhalt eine Datei ausgeben?

    Das ist die Schlüsselstelle im Code:

    Python: aus #14
    os.system("ls /media/pi/Auto_Daten/Programme > dateien.txt")

    Der Rest ist der verzweifelte Versuch, den Inhalt von dateien.txt zu lesen.

    Im Prinzip geht es hier, im ersten Schritt, darum die Namen der im Verzeichnis /media/pi/Auto_Daten/Programme vorhanden Datei zu bekommen.

    Glaube ersetzt kein Wissen

  • Das ist die Schlüsselstelle im Code:

    Python: aus #14
    os.system("ls /media/pi/Auto_Daten/Programme > dateien.txt")

    Der Rest ist der verzweifelte Versuch, den Inhalt von dateien.txt zu lesen.

    Im Prinzip geht es hier, im ersten Schritt, darum die Namen der im Verzeichnis /media/pi/Auto_Daten/Programme vorhanden Datei zu bekommen.

    Danke für deine Antwort!!

    Hast du eine andere/bessere Idee um das oben genannte zu erzielen?

Jetzt mitmachen!

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