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

如何将文件夹中多个TXT文件导入为以文件名命名的DataFrame

解决方法:将TXT文件导入为对应文件名的DataFrame

嘿,这个需求我之前处理过,其实有两种实用的方式,一种是更规范的字典管理法(强烈推荐,尤其是文件多的时候),另一种是直接创建对应文件名的变量,咱们一步步来:

方法一:用字典统一管理所有DataFrame(推荐)

这种方式会把所有DataFrame存在一个字典里,键就是去掉.txt后缀的文件名,后续调用、遍历都特别方便,还不会出现变量名冲突的问题。

代码示例

import pandas as pd
import os

# 替换成你的TXT文件夹路径
folder_path = "/your/folder/path"

# 创建空字典来存所有DataFrame
dfs_collection = {}

# 遍历文件夹里的所有TXT文件
for filename in os.listdir(folder_path):
    # 只处理.txt结尾的文件(小写判断避免大小写问题)
    if filename.lower().endswith(".txt"):
        # 去掉文件名的后缀,作为字典的键
        df_key = filename[:-4]  # 也可以用filename.replace(".txt", ""),两种写法都可行
        # 读取TXT为DataFrame,根据你的文件格式调整参数:
        # 比如制表符分隔用sep="\t",空格分隔用sep=" ",无表头加header=None
        current_df = pd.read_csv(os.path.join(folder_path, filename), sep="\t", encoding="utf-8")
        # 把DataFrame存入字典
        dfs_collection[df_key] = current_df

使用方式

之后要调用某个文件的DataFrame,直接通过字典键访问就行:

# 比如你有个sales_data.txt,就这么调用查看前几行
dfs_collection["sales_data"].head()

方法二:动态创建对应文件名的变量

如果你一定要让每个DataFrame的名字和文件名完全一致,可以用globals()来动态生成变量,但敲黑板:这种方法不推荐用于文件数量多或者文件名有特殊字符的场景,容易出现命名冲突或报错。

代码示例

import pandas as pd
import os

folder_path = "/your/folder/path"

for filename in os.listdir(folder_path):
    if filename.lower().endswith(".txt"):
        df_name = filename[:-4]
        current_df = pd.read_csv(os.path.join(folder_path, filename), sep="\t", encoding="utf-8")
        # 动态创建全局变量,变量名就是去掉后缀的文件名
        globals()[df_name] = current_df

使用方式

之后直接用文件名(去掉.txt)作为变量名就行:

# 比如文件是user_log.txt,直接用user_log访问查看统计信息
user_log.describe()

注意事项

  • 记得根据你的TXT文件实际格式调整pd.read_csv的参数,比如分隔符sep、是否有表头header、编码encoding等,避免读取错误。
  • 如果文件夹里有非TXT文件,一定要加endswith(".txt")的判断,过滤掉无关文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:15:59