python - 确定文本文件中句子、单词和字母的数量

标签 python

我的 python 程序之一是查找文本文件的句子、单词和字母的数量并将其打印在屏幕上。我对如何执行此操作有点困惑,我对如何获取单词有一些想法,但我不确定如何让程序注意到文本文件中有多少句子和字母。我如何将输出打印到屏幕上,以便我可以查看是否进行了正确的调整。下面是我想用该程序处理的文本文件。

fname = "gettysburg.txt"

num_lines = 0
num_words = 0
num_chars = 0

with open(fname, 'r') as f:
    for line in f:
        words = line.split()

        num_lines += 1
        num_words += len(words)
        num_chars += len(line)

我已经弄清楚如何将其打印到屏幕上,我现在需要帮助的是如何制作它,以便它可以确定什么是句子以及如何计算它。我还需要弄清楚如何计算字符数,但如果不计算空格,只计算字母。

最佳答案

改用 num_chars += len(line.replace(' ', '')),这会删除该行中的所有空格。

对于句子(假设所有句子都以句点结尾且句子中没有省略号),可以使用 count 方法:num_lines += line.count(".")

所以在你的代码中它看起来像:

fname = "gettysburg.txt"

num_lines = 0
num_words = 0
num_chars = 0

with open(fname, 'r') as f:
    for line in f:
        words = line.split()

        num_lines += line.count(".")
        num_words += len(words)
        num_chars += len(line.replace(' ', ''))

关于python - 确定文本文件中句子、单词和字母的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33881018/

相关文章:

python - 当管道传输到文件时分析 subprocess.Popen 的输出

python - Scrapy爬取数据到mysql

python - 在 Python 中识别某些字符串的最佳方法

python - 以微秒为单位的时差未按预期工作

python - Python 如何使用 Gunicorn 和 Kubernetes 进行扩展?

python - 获取 k 倒数最近邻

python - 比较两个数据帧 Pyspark

python - 格式化没有破折号的日期?

python - 将回车转换为 HTML 换行符

python Tensorflow 导入错误