首页 > 解决方案 > 在 django 中找不到文件

问题描述

我正在尝试使用我的 django 项目中的一些jsoncsv文件,但它从未找到它们。

我创建了一个静态文件夹,并在其中创建了一个名为 data 的新文件夹,其中包含不同的文件。但是当我调用它时,消息总是一样的,它找不到我的文件的路径。

[Errno 2] 文件 b'data/data.csv' 不存在:b'data/data.csv'

在里面settings.py我有这个:

STATIC_URL = '/static/'

STATICFILES_DIRS =[
    os.path.join(BASE_DIR, 'static'),
]

有人知道我做错了什么吗?

我如何调用csv文件的示例:

def dataframex():
    data_csv = pd.read_csv('data/data.csv')
    print(data_csv)

谢谢!

标签: django

解决方案


pandas.read_csv()不知道 Django 的staticfiles配置。

假设您使用的是本地静态文件,而不是 S3 支持的文件或更深奥的东西,您可以使用它finders.find()来定位磁盘上的真实文件

from django.contrib.staticfiles import finders


def dataframex():
    csv_path = finders.find('data/data.csv')
    data_csv = pd.read_csv(csv_path)
    print(data_csv)

但是,对于不需要直接提供给用户的静态文件,例如这个,最好将它们存储在您的应用程序目录中。

假设myapp/views.py包含上述内容,您可以移至data.csvmyapp/data.csv然后使用

csv_path = os.path.join(os.path.dirname(__file__), 'data.csv')

找到文件。


推荐阅读