从txt文件中获取字典的计数器出现问题



对于我的作业,我们应该从txt文件中提取电子邮件地址,并将其插入主程序文件中的词典中,然后有一个计数器来显示电子邮件地址发送电子邮件的频率。到目前为止,我已经成功地从txt文件中提取了电子邮件,但在字典中设置计数器时遇到了问题。用我的代码,我不断得到这些错误:

Traceback (most recent call last):
File "", line 23, in <module>
main()
File "", line 15, in main
frequency[item] += 1
TypeError: can only concatenate str (not "int") to str
def main():
frequency = {'email':[]}
cvs_colums=['email','count']
outputcvs = 'outputcvs.cvs'
with open('files/input.txt','r') as reader:
for line in reader:
if line.startswith('From:'):
line = line.rstrip('n')
email = line[6:]
frequency['email']= email
for item in frequency:
if (item in frequency):
frequency[item] += 1
else:
frequency[item] = 1
if __name__ == '__main__':
main()

我认为在您的字典中,您将电子邮件地址分配为键和值,因此当您尝试+1时,您无法在电子邮件地址中添加1。这就是您遇到的错误。

frequency['email']= email

我认为将值设置为1,除非键已经存在。

def main():
frequency = {}
cvs_colums=['email','count']
outputcvs = 'outputcvs.cvs'
with open('files/input.txt','r') as reader:
for line in reader:
if line.startswith('From:'):
line = line.rstrip('n')
email = line[6:]
if email in frequency.keys():
frequency[email] += 1
else:
frequency[email]= 1

if __name__ == '__main__':
main()

最新更新