from pymatgen.core import Structure from pymatgen.core.periodic_table import Element, Specie from pymatgen.io.cif import CifWriter from crystal_2 import crystal import crystal_2 import os import shutil from pymatgen.io.cif import CifWriter def read_files_check_partical(input_folder,output_folder): file_contents = [] folder_path = input_folder if not os.path.exists(folder_path): print(f"{folder_path} 文件夹不存在") return file_contents for filename in os.listdir(folder_path): file_path = os.path.join(folder_path, filename) if os.path.isfile(file_path): try: temp = crystal(file_path) file_contents.append(temp) print(f"正在处理{filename}") temp.check_practical() if temp.check_practical_result: target_folder = output_folder if not os.path.exists(target_folder): os.makedirs(target_folder) # 目标文件路径 target_file_path = os.path.join(target_folder, filename) # 复制文件到目标文件夹 shutil.copy(file_path, target_file_path) print(f"文件 {filename}通过实际筛选,已复制到 {target_folder}") except Exception as e: print(e) def work_py(input_folder, output_folder): if not os.path.exists(output_folder): print("not exists") for filename in os.listdir(input_folder): target_folder = os.path.join(output_folder, filename) from_folder = os.path.join(input_folder, filename) read_files_check_partical(from_folder, target_folder) if __name__ == "__main__": # work_py('../data/after_step4','../data/after_step5') # read_files_check_partical('../data/after_step4/O','../data/after_step5/O') # read_files_check_partical('../data/after_step4/S','../data/after_step5/S') read_files_check_partical('../data/after_step4/Cl','../data/after_step5/Cl') read_files_check_partical('../data/after_step4/Br','../data/after_step5/Br')