如何在Flask中打开.txt文件?

时间:2017-11-25 05:15:46

标签: python flask

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

我在使用Apache2的Linux Ubuntu服务器上。

在我的网站上,每当有人输入网址"/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'

有关为什么它似乎没有找到该文件的任何建议?

2 个答案:

答案 0 :(得分:0)

在指定文件路径时尝试使用os模块。我想你在localhost上运行时使用的是windows pc吗?

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

答案 1 :(得分:0)

确保从其目录运行服务器。因此,如果您具有如下所示的此结构,则不能简单地打开终端并键入/home/username/,因为您位于主目录(cd)中。您需要server./__init__.py并运行/home/ username/ server/ __init__.py temp.txt

os.path.abspath(os.path.dirname(__file__)) + '/temp.txt')

或者,如果您想从其他地方运行它,请运行从os.path打开文件(使用python 3.5.2测试)
请参阅#include <stdio.h> int main() { int n,i,total = 0; int numArr[n]; printf("How many numbers do you want to print? => "); scanf("%d",&n); for(i = 0; i < n; i++) { scanf("%d",&numArr[i]); total += numArr[i]; } printf("--------------------------------\n"); printf("Average of this %d numbers: %d",n,total/n); } 的python文档。