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

如何选取CSV/文本文件最后一行并批量导入至Excel

问题核心需求
  • 批量读取指定目录下的文本/CSV类结构化文件
  • 仅提取每个文件的最后一行有效数据
  • 把所有提取到的数据合并后导出为名为Total.xlsx的Excel文件
原代码存在的问题
  • 存在无意义的嵌套for循环,内层循环和外层循环用了同一个迭代变量名,逻辑完全混乱
  • 切片语句txt_list[-7::3]既没有赋值给变量,也没有做任何数据处理,属于无效代码,完全不会产生实际作用
  • 读取文件时直接加载了整个文件的全部内容,没有做最后一行的筛选,最终导出的是所有文件的全量数据,不符合需求
  • 代码末尾多了多余的]符号,运行时会直接触发语法错误
可直接运行的正确实现代码
import glob
import pandas as pd
import os

path = input("Insert location:").strip()
# 如果需要同时匹配txt和csv文件,可替换为下面这行的匹配规则
# file_list = glob.glob(os.path.join(path, "*.txt")) + glob.glob(os.path.join(path, "*.csv"))
file_list = glob.glob(os.path.join(path, "*.txt"))
txt_list = []

for file in file_list:
    # 跳过空文件避免报错
    if os.path.getsize(file) == 0:
        continue
    # 读取当前文件后仅保留最后1行
    last_row = pd.read_csv(file).tail(1)
    txt_list.append(last_row)

# 合并所有提取到的最后一行数据
if txt_list:
    excl_merged = pd.concat(txt_list, ignore_index=True)
    excl_merged.to_excel('Total.xlsx', index=False)
    print(f"处理完成,共提取{len(txt_list)}个文件的最后一行,已导出为Total.xlsx")
else:
    print("指定路径下未找到可处理的有效文件")
补充说明
  • 如果处理的是体积特别大的文件,不想加载全量内容浪费内存,可以把读取最后一行的逻辑替换为逐行读文件取最后一行的写法,小文件场景下用pandas自带的tail(1)写法更简洁稳定
  • 代码里加了空文件判断、有效文件数量判断,避免边缘场景下程序直接崩溃
  • 用os.path.join拼接路径比直接字符串拼接兼容性更好,不会出现Windows和Mac/Linux路径斜杠不匹配的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 00:48:24