计算Python文本中的单词列表

计算Python文本中的单词列表,python,python-3.x,Python,Python 3.x,我想知道我的文本中是否有一些垃圾词,如“gift”、“sign”和“buy”,我知道gift和sign分别出现两次和一次,但当我运行下面的代码时,所有单词的计数都是0。有什么帮助吗 efile= open('email.txt', 'r') eMail = efile.read() gift_count = 0 sign_count = 0 buy_count = 0 for word in eMail: if word == 'sign': sign_count+=

我想知道我的文本中是否有一些垃圾词,如“gift”、“sign”和“buy”,我知道gift和sign分别出现两次和一次,但当我运行下面的代码时,所有单词的计数都是0。有什么帮助吗

efile= open('email.txt', 'r')
eMail = efile.read()

gift_count = 0
sign_count = 0
buy_count = 0

for word in eMail:
    if word == 'sign':
        sign_count+=1
    if word == 'gift':
         gift_count+=1
    if word == 'Buy':
        buy_count += 1
         
efile.close()

print (" In the email file: the words  sign appears " \
       , sign_count," the word gift appears " \
      , gift_count, " the word Buy appears " \
      , buy_count)

当您迭代
read()
结果时,您是一个字母接一个字母地迭代,而不是一个字接一个字地迭代。
若要修复此问题,请使用
words=file.read().split(“”)

当您迭代
read()
结果时,您是一个字母接一个字母地迭代,而不是一个单词接一个单词地迭代。
要修复此问题,请使用
words=file.read().split(“”)查看
email.txt
的内容是什么?您是否希望电子邮件中的word使用
将文本拆分为单词,仅仅因为您使用了名称
word
?我想取消回答,但。。。。。您可以使用内置lib集合中的Count“from collections import Counter efile=open('email.txt','r')email=efile.read()Count\u words=Counter(email.lower().split())print(Count\u words['sign'])print(Count\u words.most\u common(5))``参见。
email.txt
的内容是什么,电子邮件中的word需要
将文本拆分为单词,仅仅因为您使用了名称
word
?我想取消回答,但。。。。。您可以使用内置库集合```中的计数从集合导入计数器efile=open('email.txt','r')email=efile.read()计数单词=计数器(email.lower().split())打印(计数单词['sign'])打印(计数单词。大多数单词(5))```