我想使用ftplib将程序生成的数据上传为列表。我可以看到最近的方法是ftp.storlines,但是这需要一个带有readlines()方法的文件对象。
显然我可以创建一个文件,但这似乎有些过分,因为数据不是持久的。
有什么可以做到的吗?:
session = ftp.new(...)
upload = convertListToFileObject(mylist)
session.storlines("STOR SOMETHING",upload)
session.quit
答案 0 :(得分:3)
你总是可以使用StringIO
(documentation),它是一个类文件对象的内存缓冲区。
from io import StringIO # version < 2.6: from StringIO import StringIO
buffer = StringIO()
buffer.writelines(mylist)
buffer.seek(0)
session.storlines("...", buffer)
请注意,writelines
方法不会添加行分隔符。因此,您需要确保mylist中的每个字符串都以\n
结尾。如果mylist中的项目未以\n
结尾,您可以执行以下操作:
buffer.writelines(line + '\n' for line in mylist)