我想使用 ftplib 将程序生成的数据作为列表上传。我能看到的最接近的方法是 ftp.storlines,但这需要一个带有 readlines() 方法的文件对象。
显然我可以创建一个文件,但这似乎有点矫枉过正,因为数据不是持久的。
有什么可以做到这一点吗?:
session = ftp.new(...)
upload = convertListToFileObject(mylist)
session.storlines("STOR SOMETHING",upload)
session.quit
最佳答案
您始终可以使用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)
关于python - 有没有一种简单的方法可以使列表表现为文件(使用 ftplib),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2461169/