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