我可以在pybel中捕获格式转换过程中的警告消息吗?

问题描述 投票:0回答:1

我有一个 SMILES 格式的分子列表,我正在将其转换为 InChIKey 格式。然而,其中一些正在发出警告。我希望能够生成一个文件,显示在转换每个分子的过程中生成的警告,以便团队成员可以查看它们。是否可以以编程方式捕获这些消息,而不仅仅是记录它们?

说明我希望能够做什么的片段:

import pybel

smiles = pybel.readfile('smi', 'smiles.txt')
converted = []
for mol in smiles:
    smiles_str = mol.write('smiles')
    inchikey_str = mol.write('inchikey')
    warnings = None # Is there something I can do here to capture the warnings?
    converted.append((smiles_str, inchikey_str, warnings))
python openbabel pybel
1个回答
0
投票

在研究了许多来源(例如chemistrygithubstackoverflow)之后,我还没有找到一种方法将代码添加到现有脚本中,以便将

pybel
警告重定向到日志文件。 不过,我可以通过使用
script
为您提供一个可能的解决方案。通过修改您的代码:

import pybel

smiles = pybel.readfile('smi', 'smiles.txt')
converted = []
for mol in smiles:
    print(mol)
    smiles_str = mol.write('smiles')
    inchikey_str = mol.write('inchikey')

使用命令运行:

script -c "python smiles2sdf.py" log.txt

它将在执行过程中将终端上显示的所有内容输出到log.txt。此功能使我们谨慎选择屏幕上显示的内容。

有关此套件的更多信息位于此处

© www.soinside.com 2019 - 2024. All rights reserved.