我一直在寻找周围的分配类的数据,并没有运气找到任何回答我的问题。阅读文本并在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发现了两个“album.py”文件,而且我一直无法对如何将解决方案应用于我的案例做出正面或反面的评论。
是的,这是一所学校分配。我做了一些挖掘,发现了一些相关的东西,但我只是不理解它。我对编程一般都很陌生,而且我已经取得了进步,但是这似乎太过头了。
我知道我会这样减少采用分体式(\ n \ n)和一系列逐渐变小名单的工作清单,但我想不惜一切代价避免这种方法。
编辑:
目前,最好假设我什么都不知道。虽然,回答下面的问题:我可以打开文件并阅读它。如果它是一个一致的CSV格式的文件,我可以编写代码来处理所包含的数据,并创建一个使用该数据的类结构。现在我只是遇到了前三行和下面的数字。
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 2012-04-03 01:47:50
你为什么害怕在名单上分裂? '\ n \ n'是迄今为止我可以看到的* only *分隔符。如果你不分裂两条换行符,你将如何划分一个对象的开始和另一个对象的结束? – mvanveen 2012-04-03 02:14:17