【问题标题】:Deployed Django instance not recognising a file as a file部署的 Django 实例未将文件识别为文件
【发布时间】:2018-01-08 17:00:59
【问题描述】:

我已经部署了一个运行良好的 django webapp。它为新发布的 .csv 文件抓取站点,然后将它们用于数据分析,然后将其返回给用户。

最新的 .csv 在已部署版本上未被识别为文件,但在我的本地计算机上的测试版本上。结构如下:

-indicator-analyser
  -Analyser
    -AnalysisScripts
    -uploads
       -data
         -2017
           -Monthly_File_Jun_Final.csv
           -Monthly_File_Sep_Final.csv

当用户尝试在Monthly_File_Jun_Final.csv 上运行脚本时,webapp 会按预期运行。当他们在Monthly_File_Sep_Final.csv 上运行相同的脚本时,django 会抛出一个错误,因为没有找到文件。我采用了传入的文件路径并使用它在资源管理器中打开文件,并且我使用相同的文件路径将 .csv 作为数据框加载到控制台中的 pandas 中,没有任何问题。

传递给加载脚本的路径是:

C:\\webapp\\indicator-analyser\\Analyser/uploads/data/2017/Monthly_File_Sep_Final.csv

当使用os.path.isfile(filepath) 进行评估时,它会以False 的形式返回。 However, when the other file is selected, this is returned and recognised as a file:

C:\\webapp\\indicator-analyser\\Analyser/uploads/data/2017/Monthly_File_Jun_Final.csv 

仅供参考,这是在 IIS 服务器上运行的。我已经重新启动机器和服务器无济于事。

总之,我可以访问这个文件:

  • 通过控制台
  • 在我的本地实例上
  • 通过我的文件浏览器

但它在实时 django 实例中不被识别为文件。

【问题讨论】:

  • 你还能显示你尝试访问文件的代码吗?
  • 有点复杂——数据集有自己的类,文件名有添加时间框架的功能,然后文件名根据时间框架放置在路径中,数据集。我知道它在哪里失败,我已将文件路径输出为失败点(上图)。两个文件路径示例都是同一个类,具有添加 tiemframe 的相同函数。 Jun 文件将if os.path.isfile(filepath) 传递为True,而SepFalse
  • 尝试在文件夹中打开 Python shell 并执行os.listdir 三重检查字符和拼写。
  • @sytech 是的,我确实这样做了,并且文件出现了。我从 django 输出了文件路径,然后在控制台中尝试了os.path.isfile(filepath),结果被评估为True

标签: python django csv iis


【解决方案1】:

已通过删除抓取的文件并重新下载并将其放置在完全相同的位置来解决此问题。我不知道为什么这已经解决了它,但它现在可以工作了。

【讨论】:

    猜你喜欢
    • 2019-01-12
    • 1970-01-01
    • 2016-05-11
    • 2015-04-24
    • 2017-02-19
    • 2013-12-08
    • 2011-01-21
    • 2017-03-01
    • 1970-01-01
    相关资源
    最近更新 更多