【问题标题】:How to open a .txt file in Flask? [duplicate]如何在 Flask 中打开 .txt 文件? [复制]
【发布时间】:2017-11-25 05:15:45
【问题描述】:

我正在尝试使用 Python 的 Flask 框架构建一个网站。

我在一个带有 Apache2 的 Linux Ubuntu 服务器上。

在我的网站上,每当有人输入 URL "/Elv_1.html" 时,我想打开一个 .txt 文件,获取一些值并使用 pygal 创建一个图表。这是我的代码:

@app.route('/river_1.html')
def riv_1():
    try:
        document = open('temp.txt','r')

        temp_list = []
        for n in document:
            n = n.rstrip('\n')
            n = int(n)
            temp_list.append(n)

        document.close()

        graf = pygal.Line(title=u'Tempt last 24h')
        graf.x_labels = (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24)
        graf.add('Temp', temp_list)
        graf = graf.render_data_uri()

        return render_template('river_1.html', graf=graf)
    except Exception, e:
        return str(e)

if __name__ == '__main__':
    app.run(debug=True)

文件'temp.txt'__init__.py 文件位于同一目录中。 __init__.py 是代码来自的 Flask 应用。

当我在我的计算机上使用 localhost 运行服务器时,它工作得很好。但是,当我将它上传到我的 Linux 服务器并尝试输入该特定 URL 时,它会显示以下错误:

[错误2]没有这样的文件或目录:'temp.txt'

关于为什么它似乎找不到文件的任何建议?

【问题讨论】:

  • 服务器上是否也存在该文件?也就是你把temp.txt也上传到服务器了,不仅仅是Python程序?
  • 似乎该文件与烧瓶文件不在同一目录中。看看这是否是问题所在。这些问题通常是由于名称不正确或路径不正确造成的
  • 当你在本地运行你的应用程序时,它们在一边,但在服务器上,你可以使用wsgi server调用你的应用程序,(如果你不是,你应该这样做!),有一个那里的 python 路径之间有一点区别,你应该改变你给文件path 的方式。
  • 是的,文件已经上传到服务器了。
  • 我的 init.py 与 temp.txt 位于同一文件夹中

标签: python flask


【解决方案1】:

在指定文件路径时尝试使用os 模块。我假设您在 localhost 上运行时使用的是 Windows pc?

import os
document_path = os.getcwd()+'temp.txt'
document = open(documnet_path, 'r')

【讨论】:

    【解决方案2】:

    确保您从其目录运行服务器。所以如果你有如下所示的结构,你不能简单地打开终端并输入server/__init__.py,因为你在你的主目录(/home/username/)中。你需要cdserver 然后运行./__init__.py

    /home/
      username/
        server/
          __init__.py
          temp.txt
    

    或者,如果您想从其他地方运行它,请从os.path.abspath(os.path.dirname(__file__)) + '/temp.txt') 运行打开文件(使用 python 3.5.2 测试)
    请参阅 python 文档以获取 os.path

    【讨论】:

      猜你喜欢
      • 2017-10-27
      • 1970-01-01
      • 2017-04-24
      • 2022-11-24
      • 1970-01-01
      • 2017-05-13
      • 1970-01-01
      • 2015-06-29
      • 2019-11-27
      相关资源
      最近更新 更多