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

标签 python ftp file-upload list iterator

我想使用 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/

相关文章:

jquery-mobile - Blueimp Jquery 文件上传插件未上传移动设备上的所有文件(在桌面上运行良好)

c# - 将文件从 Html 表单(多部分/表单数据)作为流上传到 WCF REST 服务而不流式传输整个表单的输入?

python - Flask 跨多个模块进行日志记录

Python将数据框切片为多个Excel文件

java - 从 FTP 文件列表中获取项目的时间戳

file-upload - GraphQL 文件上传的拒绝和错误处理

python - 使用python从语料库中提取最频繁的单词

python 在多个 CPU 核心上传播 subprocess.call

windows - 在 Windows 中通过 FTP 复制文件夹

ubuntu - curl ftp 删除多个文件 sh 脚本