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

Python读取每行单词语件:如何无需逐行rstrip高效读取并传参至函数

嘿,这个需求我经常碰到!确实有几种更简洁高效的方式可以避免每次调用rstrip(),而且还能提升读取效率,分情况给你说:

1. 一次性读取+按行分割(适合中小文件)

如果文件不是特别大,直接一次性读取整个内容,再用splitlines()分割,这个方法会自动去掉所有换行符,代码干净又高效:

with open('your_words_file.txt', 'r') as f:
    # splitlines() 会按换行符分割,且不会保留换行符
    words = f.read().splitlines()

# 遍历每个单词传入函数
for word in words:
    your_target_function(word)

这种方式减少了逐行I/O的次数,整体效率比逐行处理高不少,而且代码看起来清爽很多。

2. 生成器表达式(适合超大文件)

如果文件大到没法一次性加载到内存,用生成器表达式来逐行处理,同时精准去掉换行符(只删\n,避免误删单词末尾的其他空白):

with open('your_words_file.txt', 'r') as f:
    # 用生成器懒加载,不会一次性占满内存
    words = (line.rstrip('\n') for line in f)

for word in words:
    your_target_function(word)

这里用rstrip('\n')而不是无参数的rstrip(),是因为无参数会去掉所有空白字符(比如空格、制表符),如果你的文件里每行真的只有纯单词,这样更精准,速度也更快一点。

额外小技巧:避免处理最后一行的换行符问题

如果你的文件最后一行可能没有换行符,用splitlines()完全不用操心这个问题,它会自动处理;如果用逐行处理的方式,也可以用line.strip('\n'),效果和rstrip('\n')一样,因为每行只有一个单词,不存在开头的空白。

总的来说,优先选第一种(中小文件),超大文件就用生成器的方式,都比逐行调用rstrip()要简洁高效~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:03:53