从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 != "$$$$ ": 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()