将内容写入heroku python中的文件

时间:2018-01-21 09:14:10

标签: python file heroku flask heroku-cli

我使用Flask,Python部署了一个heroku应用程序。在我的脚本中,我将一些变量var regex = new Regex(pattern); var matches = regex.Matches(input); var list = new List<string>(); foreach (Match m in matches) { if (m.Success) { list.Add(m.Value); } } 保存到文件data。但是,当我params.txt时,我没有看到任何保存的文件(此处保存的文件是指我在scirpt中创建的文件,即params.txt)。我使用以下方法写入文件

heroku run ls

在脚本的另一部分我正在保存

with open('params.txt', 'a') as the_file:
  the_file.write(data)

我也无法看到此文件xg_reg.save_model('train.model') 。我做错了什么?

注意:

- 日志文件中没有错误。

- 它在我的本地计算机上工作得很好,但在服务器上却没有。我们是否需要提供特殊权限才能使脚本在服务器上创建/修改文件?

-Heroku应用程序起点 - app.py位于/ app目录中(/ app目录是Heroku的默认目录。所有用户脚本都进入此目录),我正在此目录上执行train.model同样。可能是这样的情况:如果我们heroku run ls,那么它会在其他目录中创建该文件。如果是,那么请回答哪个目录?

不是重复注意 相对而言,这不是一个重复的问题,因为数据没有被重置。只是open('params.txt, 'a')没有显示脚本生成的文件。但是,如果我运行另一个脚本,我可以访问前一个脚本生成的文件。请在将其标记为重复之前阅读我已链接的问题。 当我从Heroku获得一些更新/评论时,我会更新回复。

1 个答案:

答案 0 :(得分:0)

Heroku有短暂的文件系统。在每个请求中都会克隆并销毁新环境,这就是您无法找到在其他请求/实例上创建的文件的原因。您应该将日志文件存储在amazon S3或其他地方。