Seite 1 von 1

Simple Musikverwaltung

Verfasst: Donnerstag 18. Oktober 2018, 17:54
von brigz
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

Re: Simple Musikverwaltung

Verfasst: Donnerstag 18. Oktober 2018, 20:53
von ThomasL
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.

Re: Simple Musikverwaltung

Verfasst: Donnerstag 18. Oktober 2018, 21:16
von Sirius3
@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.