Ich habe um gesucht, und hatte kein Glück bei der Suche etwas meine Frage zu beantworten.Text lesen und eine Klasse Daten in Python Zuweisung
Im Grunde habe ich eine Datei mit den folgenden Daten:
Title - 19
Artist - Adele
Year released - 2008
1 - Daydreamer, 3:41, 1
2 - Best for Last, 4:19, 5
3 - Chasing Pavements, 3:31, 7
4 - Cold Shoulder, 3:12, 3
Title - El Camino
Artist - The Black Keys
Year released - 2011
1 - Lonely Boy, 3:13, 1
2 - Run Right Back, 3:17, 10
EOF
Ich weiß, wie Klassen zu erstellen, und wie ein Objekt zu einer Klasse und Werten für das Objekt zugewiesen werden, aber ich bin jetzt bereit zu Reiß dir die Haare aus, wie es ist, ich soll den Text verarbeiten. Aus Text muss ich einen Titel für das Album erstellen und ihm die Informationen des Albums zuweisen. Es gibt noch mehr als das, was getan werden muss, und es gibt mehr Zeilen, die gelesen werden müssen, und ich weiß einfach nicht, wo ich anfangen soll. Ich habe zwei "album.py" -Dateien über Google gefunden, und ich war nicht in der Lage, Kopf oder Zahl davon zu machen, wie ich die Lösung auf meinen Fall anwenden könnte.
Und ja, ist dies für eine Schulaufgabe. Ich habe etwas gegraben und einige Dinge für relevant befunden, aber ich verstehe es einfach nicht. Ich bin neu in der Programmierung im Allgemeinen, und ich habe Fortschritte gemacht, aber das scheint zu weit über meinen Kopf.
Ich weiß, dass ich diese Listen reduzieren könnte unter Verwendung von Split (\ n \ n), die auf einer Reihe von zunehmend kleineren Listen, aber ich versuche, diese Methode um jeden Preis zu vermeiden.
EDIT:
Zur Zeit ist es am besten weiß ich nichts zu übernehmen. Obwohl, um unten die Frage zu beantworten: Ich kann die Datei öffnen und es lesen. Wenn es sich um eine konsistente CSV-formatierte Datei handelt, kann ich Code schreiben, um die eingeschlossenen Daten zu verarbeiten, und eine Klassenstruktur erstellen, die diese Daten verwendet. Im Moment habe ich nur Probleme mit den ersten drei Zeilen und den Ziffern unmittelbar darunter.
4. April 2012:
Okay, ich habe einige Code, habe ich die Kommentare in Bezug auf sie unterhalb links.
def getInput():
global albums
raw = open("album.txt","r")
infile = raw
raw.close
text=""
line = infile.readline()
while (line != "EOF\n"):
text += line
line=infile.readline()
text=text.rstrip("\n\n")
albums=[str(n) for n in text.split("\n\n")]
return albums
class Album():
def __init__(self, title, artist, date):
self.title=title
self.artist=artist
self.date=date
self.track={}
def addSong(self, TrackID, title, time, ranking):
self.track+={self}
def getAlbumLength(self):
asdf=0
def getRanking(self):
asdf=0
def labels(x): #establishes labels per item to be used for Album Classifier
title=""
artist=""
date=""
for i in range(0,len(albums),1):
sublist=[str(n) for n in albums[i].split("\n")]
RANDUMB=len(albums[i])
title=sublist[0]
artist=sublist[1]
date=sublist[2]
for j in range(0,len(sublist),1):
song_info = [str(k) for k in sublist[3:].split("," and " - ")]
TrackID=song_info[0]
title=song_info[1]
time=song_info[2]
ranking=song_info[3]
getInput()
labels(albums)
Persönliche Kommentare zu Code: Ich habe versucht, bekommt es in Listen zu vermeiden, weil ich dieses Problem erwartet. Was die Funktionen angeht, muss ich jeden einzelnen blutigen verwenden, weil es in den Aufgabenanforderungen liegt ... Ich bin unzufrieden, weil ich wahrscheinlich mit ihnen umgehen könnte. Der Code funktioniert ausreichend, außer für den letzten Teil, in dem ich versuche, die Song-Informationen aufzunehmen. Ich möchte die Liedinformationen in Listen aufteilen, die in die Albuminformationsliste geschachtelt sind. So etwas wie:
Der aktuelle Code gibt mir Index außerhalb des Bereichs Fehler ab sofort ... Ich benutze python3.
TLDR: Der Stoff meines Problems somit von einem Versuch geändert hat zu lösen, wie etwa Start die Lösung zu gehen, wie Elemente in einer Liste zu nehmen und sie in verschachtelten Listen konvertieren.
Vielleicht könntest du das, was du hast, posten? Mit welchem Teil hast du gerade Probleme? Öffnen einer Datei zum Lesen? Wie liest man Zeilen aus einer Datei? Wie erstelle ich die Albumklasse? Wie weise ich einer Klassenvariablen einen Wert zu? – fitzgeraldsteele
Warum haben Sie Angst, auf Listen zu teilen? '\ n \ n' ist der * einzige * Abgrenzer, den ich bis jetzt sehen kann. Wenn Sie sich nicht auf zwei neue Zeilen aufteilen, wie werden Sie den Anfang eines Objekts und das Ende eines anderen markieren? – mvanveen