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

Python/Pandas读取选中TXT文件为DataFrame时遇文件未找到错误求助

解决TXT文件读取为DataFrame的路径错误问题

问题根源

你遇到的FileNotFoundError是因为filelist里只存了文件名,没有文件的完整路径。当用pd.read_csv()读取时,Python默认在当前脚本的工作目录查找文件,而非你输入的目标目录,自然找不到对应文件。另外你的代码没有筛选TXT文件,会列出目录下所有类型的文件,不符合需求。

修正后的代码

import os
import pandas as pd

# 用户输入目标目录
input_dir = input(r'Enter location of INPUT folder: ')

# 生成带完整路径的TXT文件列表
filelist = [os.path.join(input_dir, f) for f in os.listdir(input_dir) 
            if os.path.isfile(os.path.join(input_dir, f)) and f.lower().endswith('.txt')]

# 检查是否有TXT文件
if not filelist:
    print("目录下没有找到TXT文件")
else:
    # 列出文件供选择(只显示文件名)
    for cnt, full_path in enumerate(filelist):
        filename = os.path.basename(full_path)
        print(cnt, filename)
    
    # 处理用户选择,确保输入有效
    while True:
        choice = input("select file number: ")
        try:
            choice_idx = int(choice)
            if 0 <= choice_idx < len(filelist):
                break
            else:
                print(f"请输入0到{len(filelist)-1}之间的数字")
        except ValueError:
            print("请输入有效的数字")
    
    # 读取选中的TXT文件为DataFrame
    df = pd.read_csv(filelist[choice_idx])
    # 可选:打印DataFrame的前几行验证
    print("\n读取的DataFrame预览:")
    print(df.head())

关键修改点

  • 完整路径存储:用os.path.join(input_dir, f)把目录和文件名拼接成完整路径,存入filelist,确保读取时能定位到正确文件。
  • 筛选TXT文件:添加f.lower().endswith('.txt')判断,只保留TXT文件(忽略大小写,兼容.TXT后缀)。
  • 输入验证:增加循环判断,确保用户输入的是有效范围内的整数,避免索引越界或类型错误。
  • 友好显示:用os.path.basename(full_path)只显示文件名,不影响用户选择体验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 04:35:44