質問
タイトルが分かりにくくてすみません。
①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
from flask import * import pandas as pd app = Flask(__name__) @app.route('/update', methods=['GET', 'POST']) def UPDATE(): if request.method == 'GET': return render_template('Update.html') else: 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") return render_template('success.html') if __name__ == '__main__': app.run(debug=True)
補足情報(FW/ツールのバージョンなど)
python3.9、VSCode
まだ回答がついていません
会員登録して回答してみよう