如何检查单词在文本文件中出现的次数

时间:2016-02-13 18:07:36

标签: python python-3.x count text-files

我见过一些人会问这是怎么做的,但他们的问题“过于宽泛”所以我决定找出怎么做。我在下面发布了如何。

5 个答案:

答案 0 :(得分:1)

所以要做到这一点,首先你必须打开文件(假设你有一个名为'text.txt'的文本文件)我们通过调用open函数来做到这一点。

file = open('text.txt', 'r')

open函数使用以下语法:open(file,mode)

文件是文本文档,模式是它的打开方式。 ('r'表示只读)read函数只读取文件,然后split将每个单词分成一个列表对象。最后,我们使用count函数来查找单词出现的次数。

word = input('word: ')
print(file.read().split().count(word))

你有它,计算文本文件中的单词!

答案 1 :(得分:1)

字数可能很棘手。至少,人们希望避免资本化和标点符号的差异。在字数统计中采用下一步的简单方法是使用正则表达式,并在计算之前将其生成的单词转换为小写字母。我们甚至可以使用collections.Counter并计算所有单词。

import re

# `word_finder(somestring)` emits all words in string as list
word_finder = re.compile(r'\w+').findall

filename = input('filename: ')
word = input('word: ')

# remove case for compare
lword = word.lower()

# `word_finder` emits all of the words excluding punctuation
# `filter` removes the lower cased words we don't want
# `len` counts the result
count = len(list(filter(lambda w: w.lower() == lword,
    word_finder(open(filename).read()))))
print(count)

# we could go crazy and count all of the words in the file
# and do it line by line to reduce memory footprint.
import collections
import itertools
from pprint import pprint

word_counts = collections.Counter(itertools.chain.from_iterable(
    word_finder(line.lower()) for line in open(filename)))
print(pprint(word_counts))

答案 2 :(得分:1)

拆分空白是不够的 - 拆分你不计算的所有事情,让你的案件得到控制:

import re
import sys

file = open(sys.argv[1])

word = sys.argv[2]

print(re.split(r"[^a-z]+", file.read().casefold()).count(word.casefold()))

您可以在倒置模式[^a-z']或您想要包含在计数中的任何其他内容中添加撇号。

Hogan :上校,您正在询问并回答您自己的问题。这在德国效率方面名列前茅。

答案 3 :(得分:1)

def words_frequency_counter(filename):
    """Print how many times the word appears in the text."""
    try:
        with open(filename) as file_object:
            contents = file_object.read()
    except FileNotFoundError:
        pass
    else:
        word = input("Give me a word: ") 
        print("'" + word + "'" + ' appears ' + 
            str(contents.lower().count(word.lower())) + ' times.\n')

答案 4 :(得分:0)

首先,您要打开该文件。这样做:

your_file = open('file.txt', 'r')

接下来,你要计算这个词。我们在变量brian下将您的单词设为life。没理由。

your_file.read().split().count(life)

它的作用是读取文件,将其分成单个单词,并计算单词' brian'的实例。希望这有帮助!