Simple Musikverwaltung

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
brigz
User
Beiträge: 1
Registriert: Donnerstag 18. Oktober 2018, 16:54

Donnerstag 18. Oktober 2018, 17:54

Hallo ich habe ein Problem bei einer Aufgabe die ich erledigen muss, die Aufgabe lautet: "Erstelle eine Funktion Sicherung, die den Inhalt der aktuellen Liste in eine neue Datei (Musikdatenbank_Sicherung.txt) schreibt!".
Mein Lehrer hat mir diesen Code gegeben aber ich weiß nicht was ich damit anfangen soll:

Code: Alles auswählen

liste = list()

datei = open(dateiname,a/w)
for i in liste:
    datei.write(i)              #i entspricht immer einem element der liste "liste"
datei.close()
Hier ist mein insgesamter Code bis jetzt:

Code: Alles auswählen

def menue():
    eingabe = 54545
    while (eingabe != 3):
        print("Willkommen in der Musiksammlung von Tim L.")
        print ("Folgende Funktionen stehen zur Auswahl:")
        print ("1. Musik ausgeben")
        print ("2. Sicherung vornehmen")
        print ("3. Musik suchen")
        print ("4. Musik einlesen")
        print ("6. Hilfe")
        print ("10. Beenden!")
        eingabe = int(input("Wähle aus! "))
        if (eingabe == 1):
            print ("1. Musik ausgeben:")#Alle Musiktitel werden angezeigt die in der Verwaltung vorhanden sind
            print("==================")
            print("Songs:""taking_a_walk,", "legends,", "jocelyn_flores,", "imsippinteainyohood,", "catch_me_outside")
        elif (eingabe == 2):
            print ("2. Sicherung:")
            print("==================")
            sicherung()
        elif (eingabe == 3):
            print ("3. Musik suchen:")
            print("==================")

        elif (eingabe == 4):
            musik_einlesen = open("Musikliste.txt")
            print(musik_einlesen.readlines())
            


        elif (eingabe == 6):
            print("=====Musik ausgeben zeigt dir alle Musiktitel an die in der Verwaltung vorhanden sind!")
            print("=====Sicherung vornehmen speichert deine änderungen!")
            print("=====Bei Musik suchen sucht man nach Titeln von Songs und bekommt ein paar Infos über den Song!")
            print("=====Beenden beendet das Programm!")
        else:
            print("Programm beendet")
            import sys
            sys.exit(0)
            
        
         
            
        
        
            
    


taking_a_walk = {'Artist': 'Trippie Red', 'Länge': '2:05', 'Writer': 'Scott Storch'}
legends = {'Artist': 'Juice WRLD', 'Länge': '3:11', 'Writer': 'Juice WRLD'}
jocelyn_flores = {'Artist': 'XXXTENTACION', 'Länge': '2:00', 'Writer': 'XXXTENTACION'}
imsippinteainyohood = {'Artist': 'XXXTENTACION', 'Länge': '2:54', 'Writer': 'XXXTENTACION'}
catch_me_outside = {'Artist': 'Ski Mask The Slump God', 'Länge': '2:32', 'Writer': 'Ski Mask The Slump God'}

menue()
Ich freue mich über jede Hilfe!
Ps: Ich bin ein Anfänger! :D
Benutzeravatar
ThomasL
User
Beiträge: 385
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Donnerstag 18. Oktober 2018, 20:53

Schau dir mal hier genau an, wie Dateien gelesen und geschrieben werden.
https://docs.python.org/3.6/tutorial/in ... ting-files
Aber normalerweise sollte das ja in deinem Kurs gelehrt worden sein.
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
Sirius3
User
Beiträge: 8608
Registriert: Sonntag 21. Oktober 2012, 17:20

Donnerstag 18. Oktober 2018, 21:16

@brigz: was verstehst Du denn genau nicht? ›a/w‹ soll wohl heißen, dass man entweder "a" für anhängen oder "w" für neuschreiben als zweites Argument angeben kann. `i` ist ein sehr schlechter Name für ein Listenelement, weil `i` normalerweise für einen Index steht.

Weder `while` noch `if` sind Funktionen, die Klammern daher überflüssig. Wenn man einen Dummy-Wert einer Variable zuweisen muß, damit eine while-Schleife starten kann, will man eigentlich eine while-True-Schleife benutzen. `sys.exit` hat in einem sauberen Programm nichts zu suchen, wenn man ein Programm beenden will, kehrt man einfach aus der Funktion zurück.

`sicherung` braucht als Argument eine Liste mit Musiktiteln. Die hast Du bisher noch nicht. Nur bei musik_einlesen hast Du eine Liste, die Du aber nur ausgibst. Dort vergißt Du aber, die Datei wieder zu schließen. Das macht man am besten mit dem with-Statement:

Code: Alles auswählen

        elif eingabe == 4:
            with open("Musikliste.txt") as lines:
                musik_lieder = list(lines)
            print(musik_lieder)
Die Wörterbücher, die Du am Ende definierst, werden gar nicht verwendet.
Antworten