私は周りを探索していましたが、私の質問に答えるものは何も見つかりませんでした。テキストを読み込んでPythonのデータにクラスを割り当てる
基本的に私は、次のデータを含むファイルがあります:私はクラスを作成する方法を知って、そしてどのようにそのオブジェクトにクラスと値にオブジェクトを割り当てることが、私はちょうど約準備ができてい
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
をどのように私はテキストを処理することになっている私の髪を引き裂く。テキストから、アルバムのタイトルを作成し、アルバムの情報を割り当てる必要があります。それ以外には、それ以外に必要なことがあります。さらに読むべき行があります。どこから始めるべきか分かりません。私はGoogle経由で2つの "album.py"ファイルを見つけました。私の場合にソリューションを適用する方法の頭や尾を作ることができませんでした。
はい、これは学校の割り当てのためです。私はいくつかの掘り出し物を行い、関連性のあるものを見つけましたが、私はそれを理解していません。私は一般的にプログラミングには新しく、進歩しましたが、これは私の頭をはるかに超えているようです。
スプリット(\ n \ n)を使用してリストを縮小し、徐々に小さいリストのシリーズで操作することができますが、この方法を無駄にしないようにしようとしています。
EDIT:
当分の間、それは私が何も知らないと仮定するのが最善です。しかし、以下の質問に答えるには:ファイルを開いて読むことができます。一貫性のあるCSV形式のファイルであれば、囲まれたデータを処理するコードを記述し、そのデータを使用するクラス構造を作成できます。今は、最初の3行とすぐ下の数字に問題があります。
2012年4月4日:
さて、私はいくつかのコードを持って、私は下にそれに対するコメントを残してきました。コード上の
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)
個人のコメント: 私はこの問題を予想しているためのリストにそれを避けるためにしようとしていました。機能に関しては、割り当て要件にあるため、すべての単一の血まみれのものを使用する必要があります...私はおそらくそれらを使用して回避することができますので、私は不快です。コードは、曲の情報を取得しようとしている最後の部分を除いて、十分に十分に機能しています。私は曲情報をアルバム情報リストに入れ子になったリストに分割したいと思っています。次のようなものがあります:
[Album title, Artist, Date released,[01,Song,3:44,2],[02,Song,0:01,9]....]
現行のコードでは、現時点でインデックスから範囲外のエラーが発生しています...私はpython3を使用しています。
TLDR:問題の本質は、解決策を開始する方法をリストから項目を取り込んでネストされたリストに変換する方法を解決しようとする方法から変更されました。
これまでの投稿を投稿することはできますか?あなたは何の問題を抱えていますか?読むためにファイルを開く?ファイルから行を読み込む方法は?アルバムクラスの作成方法クラス変数に値を代入する方法は? – fitzgeraldsteele
なぜあなたはリストを分割するのを恐れていますか? '\ n \ n'はこれまで見てきた*のみのデリミタです。 2つの改行で分割しない場合は、どのようにして1つのオブジェクトの始まりと別のオブジェクトの終わりを区切りますか? – mvanveen