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

Python代码生成Excel失败及TXT读取问题求助

问题描述

我用Python写了一段代码,批量读取名称包含特定编号的TXT文件,提取第12行及之后的数据,给不同编号的文件添加对应标识列,合并后保存为名为join.xlsx的Excel文件。程序运行后返回Process finished with exit code 0,但未生成目标文件;同时测试单个TXT读取的简单代码也无法运行,怀疑是本地文件路径的问题。

批量处理代码

import pandas as pd
import os
import re

ruta_carpeta = r"C:\Users\José\Documents\prueba1_validador"

archivos_txt = [archivo for archivo in os.listdir(ruta_carpeta) if archivo.endswith(".txt")]

df = pd.DataFrame()

for archivo in archivos_txt:
    ruta_archivo = os.path.join(ruta_carpeta, archivo)

    with open(ruta_archivo, "r") as f:
        contenido_archivo = f.readlines()[11:] 

    df_archivo = pd.DataFrame([linea.strip().split() for linea in contenido_archivo])

    if re.search(r"24645", archivo):
        df_archivo["Columna"] = "1"
    elif re.search(r"33033", archivo):
        df_archivo["Columna"] = "2"
    elif re.search(r"57375", archivo):
        df_archivo["Columna"] = "3"
    elif re.search(r"38831", archivo):
        df_archivo["Columna"] = "4"
    elif re.search(r"79441", archivo):
        df_archivo["Columna"] = "5"
    elif re.search(r"50025", archivo):
        df_archivo["Columna"] = "6"
    else:
        df_archivo["Columna"] = ""

    df = pd.concat([df, df_archivo], ignore_index=True)

ruta_archivo_excel = os.path.join(ruta_carpeta, "join.xlsx")

with pd.ExcelWriter(ruta_archivo_excel) as writer:
    df.to_excel(writer, index=False)

print("Excel file was generated:", ruta_archivo_excel)

单个TXT读取测试代码

ruta_archivo = r"C:\Users\José\Documents\prueba1_validador\TXT\33033_TRA2.txt"

with open(ruta_archivo, 'r') as f:
    contenido = f.read()
    print(contenido)
排查与解决思路
  • 路径一致性检查
    批量代码的根路径是C:\Users\José\Documents\prueba1_validador,但测试代码多了一层TXT子文件夹。确认TXT文件的实际位置:如果文件在TXT子文件夹下,把批量代码的ruta_carpeta改成r"C:\Users\José\Documents\prueba1_validador\TXT",否则os.listdir会找不到任何TXT文件,最终生成的Excel为空甚至无法生成。

  • 特殊字符与权限问题
    路径包含西班牙语特殊字符José,部分Windows环境或Python版本对特殊字符路径支持不佳,可尝试将文件夹重命名为Jose并修改代码路径;同时确认当前用户对目标文件夹有读写权限(右键文件夹→属性→安全)。

  • 空DataFrame验证
    在批量代码中添加print("找到的TXT文件数量:", len(archivos_txt)),确认是否成功定位到文件。如果输出为0,说明路径错误或文件夹内无TXT文件,此时空DataFrame可能导致Excel保存失败。

  • Excel依赖库安装
    Pandas保存Excel需要openpyxl或xlwt依赖,执行pip install openpyxl安装后重新运行代码,避免因依赖缺失静默失败。

  • 测试代码异常捕获
    修改测试代码捕获具体错误,快速定位问题:

    import traceback
    ruta_archivo = r"C:\Users\José\Documents\prueba1_validador\TXT\33033_TRA2.txt"
    try:
        with open(ruta_archivo, 'r', encoding='latin-1') as f:
            contenido = f.read()
            print(contenido)
    except Exception as e:
        print("读取失败:", str(e))
        traceback.print_exc()
    

    若为编码问题,可尝试指定encoding='utf-8'或西班牙语常用的encoding='latin-1'。

内容的提问来源于stack exchange,提问作者José Durand

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 23:07:37