如何将3个数据(在相邻列中)的名称的CSV文件转换为创建的类的变量,数据作为参数?CSV列表(行,列)到Python变量名称(名称,值)
下面的代码似乎创建的对象,但列表是对象的位置,而不是我喜欢的名称。
任何人都可以帮忙吗?
class Teams(object):
def __init__(self, TeamName, FT, FG, Three):
self.TeamName = TeamName
self.FT = FT
self.FG = FG
self.Three = Three
North_Carolina = Teams("North Carolina", .643,.458,.371)
print North_Carolina.TeamName, North_Carolina.FT, North_Carolina.FG,North_Carolina.Three
## works fine but manually typed data
def getData(fname): ##fname is a csv file with 4 columns and 348 rows. One header row.
Data = open(fname, 'r')
TeamList = []
#print Data.read() ## prints a list with comma separated values and line return
for line in Data:
info = line.split(",") ##info is a list of lists of Data with Team,FT,FG,3P
name = info[0]
FT = info[1]
FG = info[2]
Three = info[3]
newTeam = (name, FT, FG, Three)
newTeam2 = Teams(newTeam[0],newTeam[1],newTeam[2],newTeam[3]) ##newTeam2 is an object.
TeamList.append(newTeam2)
print TeamList[1].TeamName ##prints North Carolina list[0] print header
print TeamList #prints list of object locations but not objects themselves
getData("Stats 01-04-2013.csv")
首先print
语句打印:
North Carolina
二print
语句打印:
[<__main__.Teams object at 0x02953230>, <__main__.Teams object at 0x029532B0>, etc etc
有什么理由不使用Python的CSV模块? –
@HaraldScheirich:在这种情况下,它不是绝对必需的,因为它是一个相当简单的CSV。但是,更好地使用图书馆。 – hayavuk
我不完全清楚你想要“打印Teamlist”来打印。你想要一个以逗号分隔的所有团队名称列表,或者每个团队的一个以换行符分隔的列表(以逗号分隔的所有团队属性列表),还是......?如果我在我的回答中猜测错误,请明确说明您的预期输出是什么。 – abarnert