@db2021 db2021 / table2.py(未完成)
Created at Thu Oct 28 00:58:34 JST 2021
table2
table2.py(未完成)
Raw
from cassandra.cluster import Cluster
from cassandra.query import dict_factory
import pubchempy as pup
import os
import time


# cluster = Cluster(['127.0.0.1'])
# session = cluster.connect()
# session.row_factory = dict_factory


element = []
files =os.listdir("/Users/musashimaru/Desktop/table2/edit/am1_outfile")
element_z = [f for f in files if os.path.isfile(os.path.join("/Users/musashimaru/Desktop/table2/edit/am1_outfile", f))]

# 分子名取ってくんのに使った
txt_path = "/Users/musashimaru/Desktop/table2/edit/index.txt"

for j in element_z:
    a=j.replace(".log","")
    element.append(a)

failed_element = ["Water","Vaseline","IWC","OMEGA"]
flag = False

for i in element:
    try:
        ary_f = []
        ary_r = []
        ary_i = []
        ary_m = []
        ary_t = ""
        path = "/Users/musashimaru/Desktop/table2/edit/am1_outfile/"+ i + ".log"
        # path_j = "/Users/musashimaru/Desktop/table2/edit/main_out/" + i + ".csv"

        req = ["MolecularFormula","inchi"]


        # index.txtからtimeUUIDみて分子名取ってきてる
        # あとファイル名のtimeUUIDを取ってる
        with open(txt_path, "r") as m:
            for line in m:
                if i in line:
                    name = line.replace("element name : ", "").replace("timeuuid : " + i, "")
                    print(name)
                    ary_t = i


        # pubchemかなんかから分子名でデータ取ってる
        out = pup.get_properties(req,name,'name')
        print(out[0])

        # 取ってきたデータからinchi_noの抜き出し
        ary_i.append(out[0].get("InChI"))
        time.sleep(1)


        # logファイルからfreqとir_intenの抜き出し
        with open(path,"r") as d:
            for i, line in enumerate(d):
                if 'Frequencies' in line:
                    data = line.replace("Frequencies --","")
                    datas = data.split()
                    for l in datas:
                        ary_f.append(l)
                elif 'IR Inten' in line:
                    data = line.replace("IR Inten    --","")
                    datas = data.split()
                    for m in datas:
                        ary_r.append(m)     


        # logファイルからガウシャンの計算手法の抜き出し
        with open(path,"r") as f:
            for line in f:
                if "#P" in line:
                    ary_m.append(line)

        # 以下cassandraに投げたいテーブルのデータ
        # print(ary_t)
        # print(ary_f)
        # print(ary_i[0])
        # print(ary_r)
        # print(ary_m[0])

        # session.execute("use odordb;")
        # session.execute("insert into odordb.calqfreq(timeuuid, freq, inchi_no, ir_inten, method) values (%s, %s, %s, %s, %s);", (ary_t, ary_f, ary_i[0], ary_r, ary_m[0]))

        # cluster.shutdown()


    # 実数の配列に
    # 変更
    except:
        failed_element.append(i)
        flag = True




if flag == True:
    cnt = 0
    with open("/Users/musashimaru/Desktop/table2/edit/output/failedelement.txt","w") as c:
        for i in failed_element:
            elt = failed_element[cnt]
            c.write(str(elt))
            c.write("\n")
            cnt = cnt +1