代码之家  ›  专栏  ›  技术社区  ›  Brent.Longborough

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

  •  1
  • Brent.Longborough  · 技术社区  · 15 年前

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

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

    有什么可以做到的吗?:

    session = ftp.new(...)
    upload = convertListToFileObject(mylist)
    session.storlines("STOR SOMETHING",upload)
    session.quit
    
    1 回复  |  直到 15 年前
        1
  •  3
  •   codeape    15 年前

    你可以一直使用 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 . 如果“我的列表”中的项目没有以 \n 你可以这样做:

    buffer.writelines(line + '\n' for line in mylist)