我有一个函数用于向csv文件添加新数据,我已经让它在某种程度上工作。但是,我遇到了一些问题。
- 当我添加新值(姓名、电话、地址、生日)时,它会将它们全部添加到同一列中,而不是同一行的不同列中。(我对如何将它们拆分为不同的列没有太多想法...)
- 我只能添加数字而不是字符串值。因此,如果我写
add_friend(blah, 31, 12, 45)
,它会返回说blah
未定义。但是,如果我写add_friend(3,4,5,6)
,它将把它添加到新行中——但是,只会添加到单个列中。 - 该函数的目标是:如果您尝试添加已经在csv中的朋友(比如Bob),并且他的地址、电话和生日已经在csv中,如果您
add_friend(Bob, address, phone, birthday)
,它应该显示False
,而不是添加它。然而,我不知道如何做到这一点。有什么想法吗?
def add_friend (name, phone, address, birthday):
with open('friends.csv', 'ab') as f:
newrow = [name, phone, address, birthday]
friendwriter = csv.writer(open('friends.csv', 'ab'), delimiter=' ',
quotechar='|', quoting=csv.QUOTE_MINIMAL)
friendwriter.writerow(newrow)
#friendreader = csv.reader(open('friends.csv', 'rb'), delimiter=' ', quotechar='|')
#for row in friendreader:
#print ' '.join(row)
print newrow