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