57 lines
2.1 KiB
Python
57 lines
2.1 KiB
Python
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') |