從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()

