#获取当前目录下全部.cif文件名称,其他目录下的.cif需要给出完整路径并且用os.chdir改变工作路径 files_bak = os.listdir('./') files = [] for f in files_bak: if f[-4:] == '.cif': files.append(f) else: continue #先将所有的cif用ase转换为poscar文件,并删除原来的cif文件 for i in files: atoms = io.read(i) atoms.write('temp.vasp', format = 'vasp') os.remove(i) #将现有的cif文件第六行加上第一行的元素符号,存为最终的POSCAR文件 f = open(i[0:-4]+'.vasp','w') with open('temp.vasp','r') as p: os.remove('temp.vasp') #在readlines()读取元素时,不必将每个元素结尾的\n用.strip()函数去掉,因为再次写入会自动达到换行效果 lines = p.readlines() lines.insert(5,lines[0]) for l in lines: f.write(l) f.close()