从pubchem下载的sdf文件是一个压缩格式,一个sdf里面有多个化学物质,需要拆分开单独保存,
先将大的sdf拆分成一个个单独的sdf小文件,然后再读取每一行小文件的第一行获取CID编号
# coding=utf-8
def splitSDF():
file_name = "48600001_48625000.sdf"
# 读取的文件内容保存在列表里
file_str_list = []
# 设置文件索引
index = 0
# import pdb
# pdb.set_trace()
with open(file_name, 'r+') as f:
for ln in f:
if ln != "$$$$\n":
file_str_list.append(ln)
else:
# 将对应的内容按照索引写入文件
index = index + 1
with open('{0}.sdf'.format(index), 'w+') as wt:
for ds in file_str_list:
wt.write(ds)
file_str_list = []
if __name__ == '__main__':
splitSDF()

