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

如何用Python循环将字典的长文件路径键改为字符串整数

批量替换字典键:将CSV文件路径键改为字符串整数

问题背景

读取文件夹中多个CSV文件到字典时,默认用文件完整路径作为键(例如dfs['/content/drive/My Drive/LAICPMS 72123/ANP/ANP 072123_7.csv']),操作时需输入完整路径十分不便。手动通过pop替换键可行,但需要批量自动化处理,已生成对应数量的字符串整数列表,却不清楚如何关联替换。

解决方案

方案1:读取文件时直接设置新键(推荐)

无需先以路径为键存储再替换,读取时直接用顺序索引转字符串作为键,一步到位:

import pandas as pd
from os import listdir, path

# 目标文件夹路径
folder_path = "/content/drive/My Drive/LAICPMS 72123/ANP"

# 筛选文件夹内所有CSV文件(避免非CSV文件干扰)
csv_files = [
    path.join(folder_path, file_name) 
    for file_name in listdir(folder_path) 
    if path.isfile(path.join(folder_path, file_name)) and file_name.endswith(".csv")
]

dfs = {}
# 遍历文件,用索引转字符串作为新键(从1开始计数,若要从0开始则改为str(idx))
for idx, file_path in enumerate(csv_files):
    new_key = str(idx + 1)
    dfs[new_key] = pd.read_csv(file_path, sep=",", skiprows=13)
    dfs[new_key].loc[0] = 0  # 将第一行设为0

方案2:对已存在的字典批量替换键

如果已经生成了以路径为键的字典dfs,可通过以下代码批量替换:

# 生成与字典长度匹配的字符串整数列表(从1开始计数)
new_keys = [str(i + 1) for i in range(len(dfs))]

# 配对原路径键与新键,批量替换
for old_key, new_key in zip(list(dfs.keys()), new_keys):
    dfs[new_key] = dfs.pop(old_key)

注意事项

  • 确保新键列表的长度与原字典的键数量完全一致,避免出现遗漏或键不匹配的问题
  • 若需要从0开始编号,将代码中的idx + 1和i + 1改为idx和i即可
  • 原统计文件数量的代码存在语法错误:"/content/drive/My Drive/LAICPMS 72123/"ANP应改为"/content/drive/My Drive/LAICPMS 72123/ANP",或使用path.join拼接路径更安全

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 06:45:29