如何在PyMOL Python脚本中判断文件是否已加载
检查PyMOL中分子是否已加载的实现逻辑
PyMOL的Python API提供了两种简洁的方式来实现你需要的判断逻辑,具体如下:
方法一:直接使用cmd.exists()函数(推荐)
cmd.exists()是PyMOL内置的判断函数,直接传入分子对象名称即可返回是否已加载的布尔值,用法最简单:
import pymol pymol.finish_launching() # 初始化PyMOL环境 target_id = "1abc" # 替换为你的目标PDB ID或自定义分子名称 # 判断分子是否已加载,未加载则执行fetch if not cmd.exists(target_id): cmd.fetch(target_id) else: print(f"{target_id} 已加载,跳过本次fetch操作") # 执行后续步骤
注意:如果使用fetch时自定义了分子名称(比如cmd.fetch("1abc", name="my_protein")),检查时必须传入这个自定义名称,而非原始PDB ID。
方法二:遍历已加载对象列表
通过cmd.get_object_list()获取当前所有已加载的分子对象名称列表,再判断目标名称是否在列表内:
import pymol pymol.finish_launching() target_name = "1abc" # 获取所有已加载的分子对象名称 loaded_objects = cmd.get_object_list() if target_name not in loaded_objects: cmd.fetch(target_name) else: print(f"{target_name} 已存在,无需重复加载") # 执行后续步骤
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

