質問
タイトルが分かりにくくてすみません。
①Flaskで作成したWebアプリ上でSQliteのデータベースを作成
②そのデータベースを使用しDashにて分析アプリを作成・閲覧
という手順でデータ分析を行っています。
DBの作成場所と扱いたい場所が異なるので、FlaskアプリでDBを作成された瞬間に.dbファイルを、Dashで作成したファイルがあるディレクトリ(扱いたい場所)に移動するようにしています。
この実行の際に「作成元に.dbがありません」とエラーが起こります。
このエラーですが、規則はわかりませんがたまに成功するときもあります(原因はわかりません)。
また、
import pandas as pd import sqlite3 import glob import shutil import time csv_files = glob.glob("C://Users/●●/*.csv") data_list = [] for file in csv_files: data_list.append(pd.read_csv(file)) df = pd.concat(data_list, axis=0, sort=True) dbname = "Test.db" conn = sqlite3.connect(dbname) cur = conn.cursor() df.to_sql("Test_sheet", conn, if_exists="replace") cur.close() conn.close() time.sleep(1) shutil.move("C://Users/●●●/Test.db", "C://Users/●●●●/Dash/Test.db")
の部分だけコピーして別のファイルで実行すると成功します。
コールバックの中で行うとエラーが起こるのですが、考えられる原因は何でしょうか?
ご教授の程、よろしくお願いします。
発生している問題・エラーメッセージ
FileNotFoundError FileNotFoundError: [Errno 2] No such file or directory: 'C://Users/●●●/Test.db'
app.py(該当部以外省略しています)
Python
1from flask import * 2import pandas as pd 3 4app = Flask(__name__) 5 6@app.route('/update', methods=['GET', 'POST']) 7def UPDATE(): 8 if request.method == 'GET': 9 return render_template('Update.html') 10 else: 11 import pandas as pd 12 import sqlite3 13 import glob 14 import shutil 15 import time 16 csv_files = glob.glob("C://Users/●●/*.csv") 17 data_list = [] 18 for file in csv_files: 19 data_list.append(pd.read_csv(file)) 20 df = pd.concat(data_list, axis=0, sort=True) 21 dbname = "Test.db" 22 conn = sqlite3.connect(dbname) 23 cur = conn.cursor() 24 df.to_sql("Test_sheet", conn, if_exists="replace") 25 cur.close() 26 conn.close() 27 time.sleep(1) 28 shutil.move("C://Users/●●●/Test.db", "C://Users/●●●●/Dash/Test.db") 29 return render_template('success.html') 30 31if __name__ == '__main__': 32 app.run(debug=True)
補足情報(FW/ツールのバージョンなど)
python3.9、VSCode
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/05/28 01:32
2022/05/28 01:38
2022/05/28 01:51