如何在python 3中通过ftp从内存中上传数据?

问题描述 投票:0回答:1

我想通过ftp将各种数据从内存(数组的内容,静态html代码等)上传到Web服务器。

仅适用于一个基本字符串'Hello World':

from ftplib import FTP
import io
...

bio = io.BytesIO(b'Hello World')
ftp.storbinary('STOR index.html', bio)

但是,我不正确地上传数据,例如:

datalog = array([['Temperature', 0, 0], ['Humidity', 0, 0]])
html_code = '<head><title></title></head><body>display here</body></html>
python ftp upload
1个回答
0
投票

您可以上传文件,但不能上传变量。

您可以使用BytesIOStringIO用数据创建文件并上传。 T

它们具有类似于普通文件的功能-即bio.write(html_code.encode())。

from ftplib import FTP
import io

text = '<head><title></title></head><body>display here</body></html>'

bio = io.BytesIO()
bio.write(text.encode())
bio.seek(0)  # move to beginning of file

ftp.storbinary('STOR index.html', bio)

对于数据记录,您可以使用模块json创建包含所有数据的字符串

from ftplib import FTP
import io

import json

datalog = ([['Temperature', 0, 0], ['Humidity', 0, 0]])
text = json.dumps(datalog)

bio = io.BytesIO()
bio.write(text.encode())
bio.seek(0)  # move to beginning of file

ftp.storbinary('STOR data.json', bio)
© www.soinside.com 2019 - 2024. All rights reserved.