如何用Python移除文本文件中不以字母结尾的行?
移除文本文件中不以字母结尾行的最简Python实现
核心思路是过滤掉最后一个非空白字符不是字母的行,以下是两种简洁实现方式:
方式1:写入新文件(安全,不修改原文件)
with open("Mytext.txt", "r") as f_in, open("Mytext_cleaned.txt", "w") as f_out: f_out.writelines(line for line in f_in if line.strip() and line.strip()[-1].isalpha())
- 用
with语句同时管理原文件和输出文件,自动处理文件关闭,避免资源泄漏 - 生成器表达式遍历每行,先判断行非空(
line.strip()),再检查去掉首尾空白后的最后一个字符是否为字母(isalpha()) - 符合条件的行直接写入新文件
Mytext_cleaned.txt
方式2:直接覆盖原文件(需谨慎,建议先备份)
如果不需要保留原文件,可以直接修改:
with open("Mytext.txt", "r+") as f: valid_lines = [line for line in f if line.strip() and line.strip()[-1].isalpha()] f.seek(0) # 移动文件指针到开头 f.writelines(valid_lines) f.truncate() # 截断文件,移除原文件剩余内容
内容的提问来源于stack exchange,提问作者Rudinberry
相关产品推荐
相关产品推荐

