在Django中找不到文件

时间:2019-11-11 12:26:54

标签: django

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

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

  

[错误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)

谢谢!

1 个答案:

答案 0 :(得分:3)

pandas.read_csv()不了解Django的staticfiles配置。

假设您使用的是本地静态文件,而不是由S3支持或更深奥的东西,您可以使用finders.find() to locate the real file on disk

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.csv移至myapp/data.csv,然后使用

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

找到文件。