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

如何在Python中导入SDF文件?导入遇文件错误问题求助

问题描述

我是编程新手,这是我首次提问,还请见谅。我尝试从ChemBL导入化合物列表,以实现网格展示与分类,但每次导入SDF文件时均提示“Bad input file”错误。我已尝试使用文件路径和文件名,但问题依旧,无法定位错误。请问是否需要逐个处理每个化合物的.sdf文件再进行打印?

相关代码

from rdkit import Chem
from rdkit.Chem import AllChem
sd_supplier = Chem.SDMolSupplier(r'C:\Users\abc\Downloads\DOWNLOAD-kFj-7sO59mDkb3HHrtKd0_C9Qh8SCpVsEFJstjEfSUw=\DOWNLOAD-kFj-7sO59mDkb3HHrtKd0_C9Qh8SCpVsEFJstjEfSUw=.sdf')
for mol in sd_supplier:
    name = mol.GetProp('Name')
    smiles = Chem.MolToSmiles(mol)
    print(f'Molecule: {name}')
    print(f'SMILES: {smiles}')

错误信息

OSError                                   Traceback (most recent call last)
<ipython-input-33-a625f28bcf9e> in <cell line: 2>()
---->3 sd_supplier = Chem.SDMolSupplier(r'C:\Users\abc\Downloads\DOWNLOAD-kFj-7sO59mDkb3HHrtKd0_C9Qh8SCpVsEFJstjEfSUw=\DOWNLOAD-kFj-7sO59mDkb3HHrtKd0_C9Qh8SCpVsEFJstjEfSUw=.sdf')

OSError: File error: Bad input file C:\Users\abc\Downloads\DOWNLOAD-kFj-7sO59mDkb3HHrtKd0_C9Qh8SCpVsEFJstjEfSUw=\DOWNLOAD-kFj-7sO59mDkb3HHrtKd0_C9Qh8SCpVsEFJstjEfSUw=.sdf

(*该行每次都会抛出错误,我尝试过使用实际文件名和文件路径,但均无效。)


解决建议

不需要逐个处理单个化合物的SDF文件,RDKit的SDMolSupplier本身支持批量读取多分子SDF。问题大概率出在文件路径或文件本身,按以下步骤排查:

  • 验证文件路径

    1. 复制路径到文件资源管理器,确认文件真实存在,检查长文件名、特殊字符是否被系统截断或转义
    2. 将SDF文件移到更简单的路径下(比如C:\temp\test.sdf),降低路径复杂度
    3. 确保路径末尾是文件名,避免以反斜杠结尾
  • 检查SDF文件有效性

    1. 用文本编辑器打开文件,确认格式正常:每个分子块以$$$$分隔,没有乱码或损坏内容
    2. 重新从ChemBL导出SDF文件,或用RDKit自带工具修复损坏的文件
    3. 先导出少量化合物测试,排除大文件读取异常
  • 添加代码容错
    即使路径正确,个别分子可能存在格式问题,修改代码增加判断:

    from rdkit import Chem
    sd_supplier = Chem.SDMolSupplier(r'C:\Users\abc\Downloads\your_file.sdf')
    for idx, mol in enumerate(sd_supplier):
        if mol is None:
            print(f'第{idx+1}个分子读取失败,跳过')
            continue
        try:
            name = mol.GetProp('Name')
        except KeyError:
            name = f'Unknown_{idx+1}'
        smiles = Chem.MolToSmiles(mol)
        print(f'Molecule: {name}')
        print(f'SMILES: {smiles}')
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 15:37:21