You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python统计文本每行的单词数与字符数?

嘿,这两个Python统计需求都不难,我给你一步步讲清楚!

一、统计每行单词数

不管你的文本是存在字符串里还是文件中,核心思路都是按行拆分文本,再对每行拆分单词后统计数量。

情况1:文本是字符串变量

如果你的文本已经存在Python字符串里,比如:

# 示例文本(第一行5个单词,第二行4个,第三行2个)
text_content = """Hello world foo bar baz
Python is great tool
Hi there"""

# 先把文本按行拆分
lines = text_content.splitlines()

# 遍历每行统计单词数
for line_num, line in enumerate(lines, start=1):
    # split()默认按任意空白(空格、制表符等)拆分单词,自动忽略首尾空白
    word_count = len(line.split())
    print(f"第{line_num}行单词数:{word_count}")

运行后会输出:

第1行单词数:5
第2行单词数:4
第3行单词数:2

情况2:文本存储在文件中

如果文本是存在.txt文件里,用文件读取的方式更高效:

# 打开文件(替换成你的文件路径)
with open("your_text_file.txt", "r", encoding="utf-8") as file:
    # 逐行读取文件
    for line_num, line in enumerate(file, start=1):
        # 先去掉每行末尾的换行符,再拆分单词统计
        word_count = len(line.strip().split())
        print(f"第{line_num}行单词数:{word_count}")

这里的strip()用来去掉每行首尾的空白(包括换行符),避免换行符干扰统计。

二、统计每行字符数

针对你给出的示例文本,核心是按行拆分后,直接统计每行的字符长度,注意要不要包含空白字符:

情况1:文本是字符串变量

假设你的示例文本按行拆分后是这样的(比如第一行是5个字符):

sample_text = """dam  
luru
Goal
Limaste
Querto
elh
Dub
Lon
row
Mumb
lhi
mba"""

lines = sample_text.splitlines()

for line_num, line in enumerate(lines, start=1):
    # 统计该行所有字符(包括空格,不包含换行符)
    char_count = len(line)
    print(f"第{line_num}行字符数:{char_count}")

如果需要去掉前后空白后的有效字符数,就把len(line)改成len(line.strip())。

情况2:文本存储在文件中

从文件读取时,每行末尾会自带换行符\n,如果不想把换行符算入字符数,记得先去掉:

with open("sample_file.txt", "r", encoding="utf-8") as file:
    for line_num, line in enumerate(file, start=1):
        # 只去掉末尾的换行符,保留行内的空格
        char_count = len(line.rstrip('\n'))
        # 如果要去掉所有前后空白,用len(line.strip())
        print(f"第{line_num}行字符数:{char_count}")

内容的提问来源于stack exchange,提问作者cpdor9

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:21:58