【发布时间】:2019-12-06 23:45:13
【问题描述】:
我正在开发一个 Python 机器人,其中代码由 Heroku 托管。 我添加的一项功能允许用户注册玩家代号,并将其与他们的 Discord 用户名相关联,并保存到 CSV 文件中。很简单。然而,事情让我很困惑,因为在 Heroku 上运行后我无法访问更新的文件。因此,一旦此 CSV 更新,我无法以任何方式访问它,并且一旦代码停止运行或出现中断,它会重新运行我上传的原始文件中的所有内容,从而丢失存储在 CSV 中的所有信息。
我现在想尝试通过 FTP 将这些值存储在我的网站上。我环顾四周,找不到这样做的方法。 我知道如何使用 Python 访问和上传,但我想直接编辑它们。
这可能吗?
【问题讨论】:
-
FTP 本身不允许文件编辑。您必须将文件复制到本地计算机,在那里对其进行编辑,然后再将其复制回来——同时希望在您复制文件和复制回远程计算机上的文件之间没有其他任何更改。他们发明了一种叫做“数据库”的东西——奇妙的小工具;他们会处理这样的一致性问题。
-
一些 IDE 可以在 FTP 上编辑文件,但他们只需下载文件,在本地编辑并发送回来。据我所知,FTP 可能无法访问服务器上的任何编辑器,因此您无法直接在服务器上对其进行编辑。使用 SSH,您可以访问服务器上的编辑器,即。
vim、emacs、nano和用于自动编辑的命令 - 即sed、grep、awk- 也适用于安装在服务器上的 Python,因此您甚至可以运行 Python 代码来自动更改文件服务器。 -
也许你应该更改代码,它应该在开始检查 csv 是否存在并将其复制到新名称(即名称中的当前日期)以保留它。
-
那么,是否有可能在发出请求时读取 CSV 并将数据存储在缓冲区中,添加/更新数据,然后覆盖文件?我需要在不将数据保存到本地文件的情况下完成所有这些操作。
-
什么要求?我不明白你什么时候尝试做什么。