見出し画像

発音暗記アプリの実装(2)

(Python学習初心者の試行錯誤・備忘録です)

まず、前回

CSVファイルを開くための画面を作って、遷移するとかややこしく考えてしまったのですけど、TkEasyGUIをいじっているうちに、ずっと簡単にできることがわかりました。

filename = eg.popup_get_file("CSVファイルを選択")

これだけですよ。これで、ファイル選択画面ひらくし、ファイルへのパスが文字列としてfilenameに入る。自分は何てややこしいことしていたんだろう。なんだか笑えてきてしまいます。

 では、実際に教材データを読み込んでSQLiteに格納します。
CSVデータの読み込みは

SQLiteへのデータ書き込みは

でやっていましたので、それを組み合わせてみます。

#実行部
window = make_main()
while True:
    event, value = window.read()
    print(event)
    if event == eg.WIN_CLOSED or event == "Exit":
        break 
    elif event == "LoadCSV":
        mycsv = eg.popup_get_file("CSVファイルを選択",
                                file_types=(("All Files", "*.*"), ("CSV Files", "*.csv"), ))        
        mydb = "mydb.sqlite3"
        con =sqlite3.connect(mydb)

        with open(mycsv, newline='', encoding='utf-8') as csvfile:
            con = sqlite3.connect(mydb)
            con.execute("DELETE FROM t_shengci")
            csvreader = csv.reader(csvfile, delimiter=',')
            for row in csvreader:
                con.execute("INSERT INTO t_shengci(hanzi, pinyin) VALUES('{}','{}')" 
                            .format(row[0],row[1]))
            con.commit()
        con.close()

window.close()

実行して、DB Browser for SQLiteで見てみると

正常にデータが格納されています。これで解決。


この記事が気に入ったらサポートをしてみませんか?