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

Python使用字典遍历不同文件名创建多数据库的方法及报错解决

报错原因

TypeError: 'str' object cannot be interpreted as an integer 报错的核心原因是Python内置的range()函数仅支持接收整数参数生成整数序列,你传入了字符串类型的路径标识,不符合函数入参要求。

正确实现方案

你不需要用glob工具,直接把两个路径的可变标识0NN、1AQ存入列表/字典遍历即可,同时注意读取tsv格式文件需要指定分隔符为制表符,单文件读取完成后即可提取指定元素写入Excel:

循环+字典实现(符合你的需求)

import pandas as pd

# 字典存储映射关系:key为路径标识,value为对应文件的完整路径
file_dict = {
    "0NN": "C:/Users/User/Documents/Research/STITCH/0NN-human-STITCH/stitch.tsv",
    "1AQ": "C:/Users/User/Documents/Research/STITCH/1AQ-human-STITCH/stitch.tsv"
}
# 可选:如果需要保留所有文件的全量数据,可初始化列表存储
df_list = []

for tag, file_path in file_dict.items():
    # 读取当前tsv文件,指定制表符为分隔符
    current_df = pd.read_csv(file_path, sep='\t')
    df_list.append(current_df)
    
    # 替换为你自己的指定元素筛选逻辑
    target_data = current_df[current_df["你需要筛选的列名"] == "指定元素"]
    # 单文件提取结果写入Excel,文件名加标识避免覆盖
    target_data.to_excel(f"{tag}_提取结果.xlsx", index=False)

# 所有文件读取完成后如果需要合并全量数据,再执行concat即可
full_df = pd.concat(df_list, ignore_index=True)

注意事项

  • 注意路径标识0NN的首字符是数字0,不是字母O,避免拼写错误导致找不到文件
  • 你原有代码里把pd.concat放在循环内部会重复执行合并操作,建议放到所有文件读取完成后再执行,提升运行效率
  • 如果需要把所有文件的提取结果写入同一个Excel的不同sheet,可以用pd.ExcelWriter实现,避免多次写入覆盖文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 00:15:05