是否可以在Python中通过FTP编辑文件?

时间:2019-12-06 23:45:13

标签: python ftp discord

我正在使用Python机器人在其中由Heroku托管代码。 我添加的功能之一允许用户注册一个gamertag,并将其与他们的Discord用户名相关联,并保存到CSV文件中。非常简单。但是,事情对我来说很混乱,因为在Heroku上运行之后,我无法访问更新的文件。因此,一旦此CSV更新,我将无法以任何方式访问它,并且一旦代码停止运行或出现中断,它就会重新运行我上传的原始文件中的所有内容,从而丢失存储在CSV中的所有信息。

我现在想尝试通过FTP将这些值存储在我的网站上。我环顾四周,找不到解决方法。 我知道如何使用Python进行访问以及可能的上传,但是我想直接对其进行编辑。

这可能吗?

1 个答案:

答案 0 :(得分:0)

感谢您的评论。 我相信它现在正在工作。

使用FTP库访问文件,并使用StringIO库读取文件。

ftp = FTP('server')
ftp.login('username','password')
string = StringIO()
ftp.retrlines('RETR /filepath.json', string.write)

因此,以这种方式将其读取为字符串,然后使用JSON库对其进行解析。

stored = json.loads(string.getvalue())

然后,使用 json.append()附加必要的代码行。

将字符串转换为字节。

dump = bytes.(json.dumps(stored), 'utf-8')

最后,写入新数据以覆盖原始文件。

ftp.storbinary('STOR /filepath.json', io.BytesIO(dump))

我可能使事情复杂化了,但是以某种方式,它终于可以工作了。而且我可以轻松访问存储数据的文件。 生活很棒。