S SmartDocs
시리즈: AI for Chemistry python 60 줄 · 업데이트 2024-06-27

area_volume.py

AI for Chemistry/code/2025_COSMO/data/s-profiles-all/area_volume-org/area_volume.py

import pandas as pd
import numpy as np
import csv
import glob
import re


csv_list = glob.glob(r"D:\COSMOSAC-master\COSMO\COSMO_all\s-profiles-all\s-profile-area\*.csv")
csv_list = glob.glob(r"D:\COSMOSAC-master\COSMO\COSMO_all\s-profiles-all\s-profile\*.csv")

print("共有%s個CSV檔"% len(csv_list))

with open("s-profile_all.csv", 'w', newline='') as wf:
# with open("s-profile-area_all.csv", 'w', newline='') as wf:
    new_writer = csv.writer(wf)
    new_writer.writerow(["CID","area", "volume"])
    for i in csv_list:
        if "-b3lyp.csv" == i[-10:]:                 # 最後10個字相等(-b3lyp.csv)
            csvreader = csv.reader(open(i, "r"))
            data = list(csvreader)
            match = re.search(r'(\d+)-opt-b3lyp.csv', i) 
            k_value = int(match.group(1))
            value_to_write = [k_value, data[51][1], data[52][1]]
            new_writer.writerow(value_to_write)
wf.close()


# import pandas as pd
# import numpy as np
# import csv
# import glob
# import re
# import os

# # csv_list = glob.glob(r"D:\COSMOSAC-master\COSMO\COSMO_all\s-profiles-all\s-profile\*.csv")
# csv_list = glob.glob(r"D:\COSMOSAC-master\COSMO\COSMO_all\s-profiles-all\s-profile-area\*.csv")

# print("共有%s個CSV檔"% len(csv_list))

# output_dir = r"D:\COSMOSAC-master\COSMO\COSMO_all\s-profiles-all\s-profile-area\s-profile-area_all"

# with open(os.path.join(output_dir, "s-profile-area_all.csv"), 'w', newline='') as wf:
# # with open(os.path.join(output_dir, "s-profile_all.csv"), 'w', newline='') as wf:
#     new_writer = csv.writer(wf)
#     new_writer.writerow(["CID","area", "volume"])
#     for i in csv_list:
#         if "-b3lyp.csv" == i[-10:]:                 # 最後10個字相等(-b3lyp.csv)
#             csvreader = csv.reader(open(i, "r"))
#             data = list(csvreader)
#             match = re.search(r'(\d+)-opt-b3lyp.csv', i) 
#             k_value = int(match.group(1))
#             value_to_write = [k_value, data[51][1], data[52][1]]
#             new_writer.writerow(value_to_write)



# e.g.,123-opt-456-def.csv
# match = re.search(r'(\d+)-opt-(\d+)-def\.csv', filename)    # (\d+) :代表數字群部分
# value = int(match.group(1) + match.group(2))
# >> 123456

관련 글