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

Python实现TXT文件倒序读取及生成文件末尾空行去除

解决方案

实现步骤

  • 读取源文件所有有效行,过滤空行
  • 反转行列表(或按序数降序排序)实现从大到小排列
  • 拼接行内容并写入目标文件,避免末尾空行

基础版代码(源文件行序与序数正相关)

如果源文件本身是按序数升序排列的,直接反转行列表即可:

# 读取源文件并过滤空行
with open('sp_ordinal_numbers_info.txt', 'r', encoding='utf-8') as src_file:
    # 保留非空行,并去除每行末尾的换行符
    valid_lines = [line.rstrip('\n') for line in src_file if line.strip()]
    # 反转行列表,实现序数从大到小排列
    valid_lines.reverse()

# 写入处理后的文件,确保无末尾空行
with open('sp_ordinal_numbers_info_fixed.txt', 'w', encoding='utf-8') as dest_file:
    if valid_lines:
        dest_file.write('\n'.join(valid_lines))

进阶版代码(源文件行序混乱时)

如果源文件的行不是按序数排序的,需要先提取序数再降序排列:

def get_ordinal_value(line):
    # 根据实际文本格式调整序数提取逻辑,这里假设序数是每行首段数字
    try:
        return int(line.split()[0])
    except (IndexError, ValueError):
        # 处理格式异常的行,设为最小值放到末尾
        return -1

# 读取并过滤空行
with open('sp_ordinal_numbers_info.txt', 'r', encoding='utf-8') as src_file:
    valid_lines = [line.rstrip('\n') for line in src_file if line.strip()]
    # 按序数降序排序
    valid_lines.sort(key=get_ordinal_value, reverse=True)

# 写入目标文件
with open('sp_ordinal_numbers_info_fixed.txt', 'w', encoding='utf-8') as dest_file:
    if valid_lines:
        dest_file.write('\n'.join(valid_lines))

关键要点

  • 不依赖os库:仅用内置的文件操作和列表方法实现
  • 去除空行:读取时通过line.strip()过滤纯空行
  • 避免末尾空行:用'\n'.join()拼接所有行,一次性写入,不会在文件末尾额外添加换行符

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 01:35:28