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

Python读取txt至列表过滤空值:原判断失效原因及一行实现

问题分析与解决

原判断失效的原因

你写入文件时,列表里的空字符串会被转成单独的换行符\n(比如用'\n'.join(humans)写入的场景)。读取时,readlines()会把这些空白行读成'\n',而非''。你的判断条件if line != ''无法匹配'\n',所以空行对应的元素会被保留,最终结果里仍有空字符串。

一行解决的写法

直接在过滤条件里检查行是否为空白内容(包括只含换行符的情况),同时完成处理:

[line.rstrip() for line in f if line.strip()]
  • 直接迭代文件对象f比readlines()更高效,无需一次性加载所有行到内存。
  • line.strip()会移除换行符、空格等所有空白字符,只要原行是空白状态(不管是'\n'还是含空格的空行),strip()后都会变成'',在if判断中会被视为False,从而被过滤掉。

如果仅需排除单纯的换行行(允许含空格的行),也可以用更精准的判断:

[line.rstrip() for line in f.readlines() if line != '\n']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 21:15:41