#
# py_count_words.py
# py_learn
#
# Created by Z. Steve on 2023/8/23 10:30.
#
import re
from collections import Counter
def count_words(text):
# 使用正则表达式将文本拆分为单词
words = re.findall(r'\b\w+\b', text.lower()) # 转换为小写以进行不区分大小写的统计
word_count = Counter(words)
return word_count
def read_file():
fs = open(file='/Users/stevexiaohuzhao/PycharmProjects/py_learn/words.txt', mode='r', encoding='utf-8')
txt = fs.read()
fs.close()
return txt
article = read_file()
word_count = count_words(article)
# 打印每个单词及其出现次数
for word, count in word_count.items():
print(f"{word}: {count}")
#
# py_words_stat.py
# py_learn
#
# Created by Z. Steve on 2023/8/23 17:14.
#
import re
from collections import Counter
# 读取文件内容
def read_file(filename):
f = open(file=filename, mode='r', encoding='utf-8')
content = f.read()
f.close()
return content
# 通过 Counter 来统计
def count_words(text):
result = re.findall(r'\b\w+\b', text)
# print(result) # ['hello', 'welcome', ...]
# print(type(result)) # <class 'list'>
return Counter(result)
# 不用 Counter, 自己写代码统计
def count_words_byself(text):
words_list = re.findall(r'\b\w+\w', text)
word_count_dict = {}
for w in words_list:
if w not in word_count_dict.keys():
word_count_dict[w] = 1
else:
word_count_dict[w] += 1
return word_count_dict
# text = read_file('/Users/stevexiaohuzhao/PycharmProjects/py_learn/words.txt')
# r = count_words(text)
# # print(r) # Counter({'the': 22, 'a': 21, 'to': 20, 'Harden': 12, 'in': 12, 'country': 11, .......})
# # print(type(r)) # <class 'collections.Counter'>
#
# for item, c in r.items():
# print(f'{item} = {c}')
text = read_file('/Users/stevexiaohuzhao/PycharmProjects/py_learn/words.txt')
r = count_words_byself(text)
print(r)
print(type(r))
for k, v in r.items():
print(f'{k} = {v}')