| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
2,007 バイト追加 、 2020年12月30日 (水) 15:57
</pre>
===[[Python]]から接続===
*requirements.txt
<pre>
mysql-connector-python==8.0.21
</pre>
*
<pre>
def normalize(
out_base_dir,
norm_prefix,
parse_dir,
parse_prefix,
skip_when_exists=True,
host='localhost'):
 
add_song_element = ("INSERT INTO song_element "
"(element, reading, reading_rev) "
"VALUES (%s, %s, %s)")
query = ("SELECT id FROM song_element "
"WHERE reading=%s and element=%s")
 
config = {
'user':'song_dict',
'password':'',
'host':host,
'database':'song_dict'
}
 
try:
cnx = mysql.connector.connect(**config)
cursor = cnx.cursor()
cnt = 0;
hashids = Hashids(salt=HASH_IDS_SALT)
os.makedirs(out_base_dir, exist_ok=True)
for file in glob.glob(os.path.join(parse_dir, '{0}*'.format(parse_prefix))):
key = file.split(parse_prefix)[-1]
print(key)
with open(file, 'r') as inf:
for l in inf.readlines():
try:
el = l.split('\t')
meta = el[-1].split(',')
element = el[0].strip()
reading = meta[-2].strip()
reading_rev = "".join(reversed(reading))
 
if element and len(element) > 1:
cursor.execute(query , (reading, element))
is_skip = False
for (id) in cursor:
is_skip = True
break;
if not is_skip:
cursor.execute(add_song_element, (element, reading, reading_rev))
print("{s} : {s}".format(cursor.lastrowid, el))
except Exception as ee:
print(ee)
cnx.commit()
except Exception as e:
print(e)
else:
cnx.close()
 
</pre>

案内メニュー