import csv from collections import defaultdict class Ask_robot(object): #ここでつかう各インスタンスの、キーを名前で、値をそれぞれ好きなもの(str型)、きらいなもの(str型)、年齢(int型)を格納する辞書型変数を三つ用意 person_like_dict=defaultdict(str) person_dislike_dict=defaultdict(str) person_age_dict=defaultdict(int) #Ask_robotのインスタンス生成時に行う処理 def __init__(self,name): self.name=name print("\n\nこんにちは"+self.name+"さん\n\n") #新しく作られたPersonインスタンスの情報を各辞書型変数に追加 def add_dict(self,name,age,like,dislike): self.person_like_dict[name]=like self.person_dislike_dict[name]=dislike self.person_age_dict[name]=age #ヘッダーをNameとLikeとし、Personインスタンスで得た情報(名前と好きなもの)をExcelファイルに出力 def person_like_csv(self,name,like,like_dict): with open("person_like.csv","w",newline="") as csv_file: fieldnames=["Name","Like"] writer=csv.DictWriter(csv_file,fieldnames=fieldnames) writer.writeheader() for name,like in like_dict.items(): writer.writerow({"Name":name,"Like":like}) #ヘッダーをNameとDislikeとし、Personインスタンスで得た情報(名前ときらいなもの)をExcelファイルに出力 def person_dislike_csv(self,name,dislike,dislike_dict): with open("person_dislike.csv","w",newline="") as csv_file: fieldnames=["Name","Dislike"] writer=csv.DictWriter(csv_file,fieldnames=fieldnames) writer.writeheader() for name,dislike in dislike_dict.items(): writer.writerow({"Name":name,"Dislike":dislike}) #ヘッダーをNameとageとし、Personインスタンスで得た情報(名前と年齢)をExcelファイルに出力 def person_age_csv(self,name,age,age_dict): with open("person_age.csv","w",newline="") as csv_file: fieldnames=["Name","Age"] writer=csv.DictWriter(csv_file,fieldnames=fieldnames) writer.writeheader() for name,age in age_dict.items(): writer.writerow({"Name":name,"Age":age})