Flask运行报FileNotFoundError,无法读取static文件夹下CSV文件怎么解决?
报错原因
你使用的相对路径static/region_map.csv是基于程序运行时的工作目录解析的,当Flask应用的启动目录和项目根目录不一致时,就会找不到对应文件。
解决方案
使用Flask内置的app.root_path属性拼接绝对路径,该属性始终指向定义Flask应用实例的脚本所在的目录,不受启动位置影响。
修改后的代码如下:
import os from flask import Flask, request app = Flask(__name__, template_folder='templates') def predict(): if request.method == 'POST': # 拼接得到csv文件的绝对路径 csv_path = os.path.join(app.root_path, 'static', 'region_map.csv') with open(csv_path, "r") as f1: region_map = f1.read()
额外检查项
- 确认你的项目目录结构符合以下层级:
项目根目录 ├── 定义app = Flask(...)的py文件(如app.py) ├── templates └── static └── region_map.csv
- 若仍报错可先打印
csv_path的值,确认拼接得到的路径和实际文件存储路径是否一致。 - 如果你使用pandas读取CSV做合并操作,直接把拼接好的路径传给
pd.read_csv()即可。
内容的提问来源于stack exchange,提问作者Elijah Kalii
相关产品推荐
相关产品推荐

