Django中如何在views.py读取并操作应用内的CSV文件
问题根因
- 你使用相对路径读取文件失败的核心原因是:Python读取文件时的相对路径是基于Django进程运行的工作目录(默认是项目根目录,即存放manage.py的文件夹),并非你当前编写代码的views.py所在的app目录,所以你写的相对路径都无法定位到app下的files文件夹。
/files/t1.csv写法属于系统根目录绝对路径,更是不可能找到对应文件。 from files import t1属于语法使用错误:Python的import语句仅用于导入Python模块(.py格式的代码文件),csv是数据文件,无法通过import语句加载。
解决方案
直接基于当前views.py的文件路径拼接csv的绝对路径即可,不受运行目录影响,写法如下:
import os import pandas as pd # 第一步:获取当前views.py文件所在的目录绝对路径 current_app_dir = os.path.dirname(os.path.abspath(__file__)) # 第二步:拼接得到csv文件的绝对路径 t1_path = os.path.join(current_app_dir, 'files', 't1.csv') # 第三步:读取文件 df = pd.read_csv(t1_path)
补充说明
如果需要统一管理这类静态数据文件,更符合Django规范的做法是将csv文件放到app的static目录下分类存放,读取时仍可以用上述路径拼接的方式定位。
内容的提问来源于stack exchange,提问作者Murcielago
相关产品推荐
相关产品推荐

