是否有一种简单的方法可以使列表表现为文件(使用ftplib)

时间:2010-03-17 09:45:56

标签: python ftp file-upload list iterator

我想使用ftplib将程序生成的数据上传为列表。我可以看到最近的方法是ftp.storlines,但是这需要一个带有readlines()方法的文件对象。

显然我可以创建一个文件,但这似乎有些过分,因为数据不是持久的。

有什么可以做到的吗?:

session = ftp.new(...)
upload = convertListToFileObject(mylist)
session.storlines("STOR SOMETHING",upload)
session.quit

1 个答案:

答案 0 :(得分:3)

你总是可以使用StringIOdocumentation),它是一个类文件对象的内存缓冲区。

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)