2017-11-23 6 views
0

私はCSVから行を読み込み、それらの項目からクラスインスタンスを作成しようとしています。私は、CSVから自分のstrをフォーマットして別のオブジェクトとして認識するように、正しい量のパラメータを取得することに問題があります。私は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 

答えて

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 
関連する問題