我正在尝试使用适用于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'
有关为什么它似乎没有找到该文件的任何建议?
答案 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文档。