python - 如何通过使用 python 从文件中将这些数据拆分为标题、艺术家、持续时间和类型来将这些数据存储到列表中?
问题描述
Con Altura ROSALIA 162 party
One Thing Right Marshmello 182 workout
Te Robare Nicky Jam 202 workout
Happier Marshmello 214 workout
Call You Mine The Chainsmokers 218 relax
Cross Me (feat. Chance the Rapper & PnB Rock) Ed Sheeran 206 relax
例如 Con Altura-> 标题,ROSALIA -> 艺术家,162 -> 持续时间和派对 -> 类型。
我有一个 Song 类,由标题、艺术家、持续时间和类型组成,但我不知道如何根据属性从文件中获取数据。
songList = [
"title" : "Te Robare Nicky", "artist" : "Jam", "duration" : 202, "type" : "workout",
"title" : "x", "artist" : "y", "duration" : z, "type" : "t",
"title" : "a", "artist" : "b", "duration" : c, "type" : "d"
]
上面的列表是我实际上想要做的。基本上在每首歌曲信息之后,我都想创建一个 Song 对象,将其存储到列表中。
song = Song(title, artist, duration, type)
我正在尝试从文件中获取数据为songs = inp.readLines()
. 然后我不知道该怎么做才能根据属性拆分这些。我有一个由 3 个属性和歌曲列表组成的播放列表类。因此,在将所有歌曲插入到我想要做的最后
playlist = Playlist("g", "h", "t", songList)
应该如何解决这个问题?
解决方案
如果字段由制表符分隔,您可以像这样获取它们:
with open('filename', 'r') as f:
lines = f.readlines()
songs = []
for line in lines:
fields = line.split('\t')
songs.append(Song(
fields[0],
fields[1],
fields[2],
fields[3]
))
或者,如果您将歌曲作为字典列表,则可以使用以下代码获取歌曲对象列表:
songObjects = []
for song in songList:
songObjects.append(Song(
song["title"],
song["artist"],
song["duration"],
song["type"]
))
如果您想在创建期间传递歌曲列表,则此代码可以放在播放列表的init函数中。
推荐阅读
- xamarin.forms - 从 UWP URI 协议方案启动未导航
- swift - 像在 SCNARView 中一样计算 worldFront
- android - 如何在android上的mysql中进行更改
- r - 在 R 中更快地读取和转换 .pdf 文件并将其转换为 .txt 文件?
- javascript - Jquery选择多个div
- javascript - Javascript 语法错误,单选按钮上无法识别的表达式
- spring-boot - 当 bootstrap.properties 存在时 application.properties 在 spring config 客户端中被忽略
- vba - 如果用户跳过行输入数值,则强制用户在以下可用行中输入数据
- angular - 在离子中创建一个模态,但以我自己的方式呈现它
- c# - opus 和 NAudio 流不同步