Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 使用python编辑Heroku上托管的文件失败_Python 3.x_Heroku - Fatal编程技术网

Python 3.x 使用python编辑Heroku上托管的文件失败

Python 3.x 使用python编辑Heroku上托管的文件失败,python-3.x,heroku,Python 3.x,Heroku,我已经在Heroku上部署了python脚本。脚本使用for循环进行迭代,并在每次迭代时更新文件。如果服务器宕机,脚本将检查文件中存储的值,并从离开的位置继续迭代。在本例中,脚本将在1处重新启动,这是我在部署脚本时输入的值。如果我在本地计算机上运行此脚本并停止,它将从它离开的位置继续运行 下面是示例代码 if __name__ == "__main__": with open('file.txt', 'r') as file: file_data = file.

我已经在Heroku上部署了python脚本。脚本使用for循环进行迭代,并在每次迭代时更新文件。如果服务器宕机,脚本将检查文件中存储的值,并从离开的位置继续迭代。在本例中,脚本将在1处重新启动,这是我在部署脚本时输入的值。如果我在本地计算机上运行此脚本并停止,它将从它离开的位置继续运行

下面是示例代码

if __name__ == "__main__":
      with open('file.txt', 'r') as file:
           file_data = file.readlines()
           count = file_data
      for i in range(count, some_long_number):
           with open('file.txt', 'w') as file:
                file.writelines(str(i))
           time.sleep(900)
希罗库有一个好主意。 无论何时部署应用程序,都会构建一个容器(非常类似于Docker)。然后在运行时执行

这意味着任何文件更改都不会在应用程序重新启动或重新部署期间保留,因此您的问题就在这里


您需要将文件计数器存储在持久数据库(如PostgreSQL或Redis)中。Heroku将这些作为附加组件提供。

服务器重启后,Heroku很可能不会保留您的文件。因此,每次重新启动时,您都会重新开始。考虑使用数据库或某种持久性存储。谢谢,我不知道每次重启都会删除文件。谢谢,我不知道每次重启都会删除文件。这很有帮助,先生。