所以我正在从CSV中读取行,并尝试从这些项创建类实例。我在从CSV获取正确数量的参数/格式化我的str时遇到问题,因此它将它们识别为单独的对象。它说我只给了2个参数(self和其中一行) 我尝试使用split()和strip(),但无法使其工作。 任何帮助,将不胜感激。这让我花了太长时间才弄明白。
以下是行的外观示例。
当前输入:
whiskers,pugsley,Raja,Panders,Smokey
kitty,woofs,Tigger,Yin,Baluga
当前代码:
import sys
class Animals:
def__init__(self,cats,dogs,tiger,panda,bear)
self.cats=cats
self.dogs = dogs
self.tiger = tiger
self.panda = panda
self.bear = bear
csv = open(file, 'r')
rowList = csv.readlines()
for row in rowList:
animalList = Animals(row.split(',')) # Fails here...
animals = []
animals = animals.append(animalsList) # Want to add to list
print animals
答案 0 :(得分:1)
您似乎有一些语法错误,我继续并纠正了这些错误。接下来,我决定使用csv
来正确分割行。然后,当您向函数输入列表(并希望将它们作为参数进行解析)时,您应该使用*
运算符。
import sys, csv
file = "file.txt" #added for testing purposes.
class Animals:
def __init__(self,cats,dogs,tiger,panda,bear):
self.cats = cats
self.dogs = dogs
self.tiger = tiger
self.panda = panda
self.bear = bear
csv = csv.reader(open(file, 'r'))
animalsList = []
for row in csv:
animalClass = Animals(*row) # Fails here...
animalsList.append(animalClass) # Want to add to list